最近在使用jpa单表操作的时候是非常的方便,但是设计到一些多表查询的时候就比较蛋疼了。
我的需求是项目中设计到一个分页以及关联查询以及多条件查询。
@Query(value = "select * from org t1 where t1.id in " +
"(select t2.org_id from org_product t2 where t2.status=?1 AND to_days(t2.end_date) > to_days(now())) order by t1.name",
countQuery = "select count(*) from org t1 where t1.id in " +
"(select t2.org_id from org_product t2 where t2.status=?1 AND to_days(t2.end_date) > to_days(now())) order by t1.name",nativeQuery = true)
Page<Org> findByStatus(Integer status , Pageable pageable);
这是手写sql,也可以继承JpaSpecificationExecutor实现复杂查询,不推荐。。。