选择多个实体时,JPA避免使用List <object []> </object []>

时间:2014-12-10 01:32:18

标签: jpa mapping multi-select pojo

在我的存储库中,我有一个如下所示的查询:

 @Query("select us,ul FROM UserScore us LEFT JOIN us.userLike ul WHERE us.param1=:param1 and ul.param2=:param2)
    public List<Object[]> getTest(@Param("param1") Integer param1, @Param("param2") Integer param2);

有没有办法避免返回List而是返回类似这样的List?

@Entity
public UserScoreUserLike {
     private UserScore userScore;
     private UserLike userLike
[getters setters]
}

在某种程度上,让JPA使用我的自定义实体/ POJO映射多选的结果?

谢谢!

1 个答案:

答案 0 :(得分:1)

&#34;选择新的&#34;符号是你的朋友,你在那里选择包装对象的创建。所以你的JPA查询看起来像

select new UserScoreUserLike(us, ul) from UserScore ...

请注意,您的包装器对象不一定(也可能不应该)和实体对象。

请参阅此其他StackOverflow回答:JPQL Create new Object In Select Statement - avoid or embrace?