2015-07-12 180 views
1

我有一个单向@ManyToOne关联的情况,我需要从querydsl-jpa(另外分组和计算)另一端急切地查询。从querydsl-jpa查询单向@ManyToOne关联

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

使用从配置文件中的OneToMany技能与mappedBy将是一个解决方案。

public class Profile { 
    @OneToMany(mappedBy = "profile") 
    private List<Skill> skills; 
} 
+0

这就是我试图避免;-) – Sebastian

+0

如果它的懒惰映射,你不为它提供了访问,这是可以接受的 –