我遇到单向@ManyToOne关联的情况,我需要使用querydsl-jpa(另外还有分组和计算)从另一方急切地查询。
public class Skill implements java.io.Serializable {
...
@NotNull
@ManyToOne
private Profile profile;
private int level;
...
}
现在我想让所有个人资料按他们的技能等级和他们的技能总和进行排序
final QProfile profile = QProfile.profile;
final QSkill skill = QSkill.skill;
return from(profile, skill)
.where(skill.profile.eq(profile))
.where(...)
.groupBy(profile.id)
.list(profile);
...会正确找到个人资料,但我也需要他们的技能(以及他们的整体水平)。
我目前的解决方法是将所有(技能和配置文件)提取到结果对象列表中,然后将技能分组到配置文件并计算其总体水平
任何线索?
答案 0 :(得分:1)
在Profile中使用OneToMany来熟练使用mappedBy将是一个解决方案。
public class Profile {
@OneToMany(mappedBy = "profile")
private List<Skill> skills;
}