左加入弹簧数据 jpa 和 querydsl
我正在使用spring data jpa和querydsl,并被困在如何编写简单漂亮的查询来左连接两个表。假设我有一个项目实体和一个任务实体,在项目中定义了OneToMany关系,我想做这样的事情:
select * from project p left join task t on p.id = t.project_id where p.id = searchTerm
select * from project p left join task t on p.id = t.project_id where t.taskname = searchTerm
在 JPQL 中,它应该是:
select distinct p from Project p left join p.tasks t where t.projectID = searthTerm
select distinct p from Project p left join p.tasks t where t.taskName = searthTerm
我有一个ProjectRepository接口,它扩展了JpaRepository和QueryDslPredicateExecutor。这使我可以访问方法:
Page<T> findAll(com.mysema.query.types.Predicate predicate, Pageable pageable)
我知道左连接可以通过创建一个新的JPAQuery(entityManager)轻松实现。但是我没有实体管理器明确注入弹簧数据jpa。有没有一种很好和简单的方法来构建一个带有左联接的谓词?希望这里有人经历过这种情况,并能够给我一个例子。谢谢。
弗雷。