Querydsl: ๋™์ผํ•œ ๊ฒฝ๋กœ ์ด๋ฆ„์œผ๋กœ QBean ํ”„๋กœ์ ์…˜ ์ƒ์„ฑ

์— ๋งŒ๋“  2015๋…„ 02์›” 19์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: querydsl/querydsl

์†์„ฑ ์ด๋ฆ„์ด ๋™์ผํ•œ ๋‘ ๊ฐœ์˜ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(team.name ๋ฐ team.leader.name).

Projections.bean(QTeam.team, team.name, team.leader.name);

์‹คํŒจ

java.lang.IllegalArgumentException: Multiple entries with same key: name=team.leader.name and name=team.name
    at com.google.common.collect.ImmutableMap.checkNoConflict(ImmutableMap.java:150)
    at com.google.common.collect.RegularImmutableMap.checkNoConflictInBucket(RegularImmutableMap.java:104)
    at com.google.common.collect.RegularImmutableMap.<init>(RegularImmutableMap.java:70)
    at com.google.common.collect.ImmutableMap$Builder.build(ImmutableMap.java:254)
    at com.mysema.query.types.QBean.createBindings(QBean.java:72)
    at com.mysema.query.types.QBean.<init>(QBean.java:161)
    at com.mysema.query.types.QBean.<init>(QBean.java:95)
    at com.mysema.query.types.Projections.bean(Projections.java:63)

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ค‘์ฒฉ๋œ ๋นˆ์„ ์ฑ„์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ

Projections.bean(Team.class, team.name, 
  Projections.bean(Leader.class, team.leader.name).as("leader"))

Leader ๊ฐ€ ์ค‘๊ฐ„ ๊ฐœ์ฒด์˜ ์œ ํ˜•์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด๊ฒƒ๋“ค์ด bean์— ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๊ธฐ๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ?

ํŒ€ ์ด๋ฆ„๊ณผ ํŒ€ ๋ฆฌ๋” ์ด๋ฆ„๋งŒ ์›ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ชจ๋“  ์†์„ฑ์€ null์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์—ฐํ•˜์ง€ ์•Š๋‚˜์š”?

QBean์€ ๊ณ ์œ ํ•œ ์†์„ฑ ํ‚ค๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ์•”์‹œ์  ์ค‘๊ฐ„ ์†์„ฑ ์ƒ์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ค‘์ฒฉ ์†์„ฑ์— ๋Œ€ํ•ด MongoDB์˜ ํ”„๋กœ์ ์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  Java bean์— MongoDB์˜ ๋ฌธ์„œ๋ฅผ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๊นŒ?

์ค‘์ฒฉ๋œ ๋นˆ์„ ์ฑ„์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ

Projections.bean(Team.class, team.name, 
  Projections.bean(Leader.class, team.leader.name).as("leader"))

Leader ๊ฐ€ ์ค‘๊ฐ„ ๊ฐœ์ฒด์˜ ์œ ํ˜•์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”. ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์„ ๊ฐœ์„  ๋˜๋Š” ํ์‡„๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰