一个2多jpa qry加入

时间:2017-08-18 19:01:34

标签: java jpa

我正在尝试使用jpa加入qry一个到多个实体

实体表单位(一) 实体表公寓(许多)

我正在使用以下JPA

@Query("Select u from Unit u inner join u.appartmentList a " +
        "where u.unitNumber IN :unitNumbers " +
        "and a.appNumber= :appNumber")
Page findApt(@Param("unitNumbers") Collection<String> unitNumbers,
               @Param("appNumber") Integer appNumber,
               Pageable pageable);enter code here

我需要能够获得2个公寓(每个单元中有一个作为unita,unitb传递) 如果我为../ findStuff做一个GET?unitNumbers = unita,unitb&amp; appNumber = 1

但我会在每个单元中获得所有公寓,而不是每个单元中的appNumber = 1。

非常感谢有关如何实现这一目标的任何想法

谢谢

1 个答案:

答案 0 :(得分:0)

您需要查询Appartment

@Query("select a from Appartment a where" + 
" a.appNumber= :appNumber and a.unit.unitNumber IN :unitNumbers"

如果unit是延迟提取的,您可能希望使用第一个查询获取它,因此查询变为:

@Query("select a from Appartment a join fetch a.unit where" + 
    " a.appNumber= :appNumber and a.unit.unitNumber IN :unitNumbers"