Spring Crud Repository自定义左连接查询

时间:2015-10-30 13:06:52

标签: spring-boot spring-data

我正在使用spring data jpa开发Spring启动项目。

我有两个具有一对多关系的实体。

床和分配

class Allocations(){
....

 @ManyToOne
     @JoinColumn(name="bedId" , nullable=true)
      private Beds beds;
.....
}

class Beds(){
....
@OneToMany(mappedBy="beds")
     @JsonIgnore
     private List<Allocations> allocations;
....
}

在Allocations存储库中,当我执行findAll()时,我可以使用bedID获取所有分配。

但我想找到所有未分配的床铺。

想在床上进行左联。

@Query("Select a from Beds b left join Allocations a on a.beds.bedID = b.bedId ")
    public List<Allocations> findtest(); 

如何执行上述活动。

此外,我不能在床上查找findall(),因为它不会给我分配表的值。

之前我使用@jsonback / managedreferences注释来查找所有床位以及它们的分配,但是当我添加新的分配时,我得到了json托管引用错误,所以我使用了@Jsonignore注释。

请建议所需的解决方案

1 个答案:

答案 0 :(得分:0)

我得到了执行左连接的查询。

@Query("Select b , a from Beds b left join b.allocations a ")