2015-07-12 82 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

如果它的懶惰映射,你不爲它提供了訪問,這是可以接受的 –