Spring Data JPA 动态条件查询+指定查询列
2019-02-28 本文已影响0人
Cook1fan
JPA在使用(Specification的动态条件查询)时将不能指定查询列,这非常的操蛋,底层代码中封死了,必须返回整个对象的所有列,具体原因可以看这里(https://my.oschina.net/xiwanglr/blog/792962)
现在演示一下如何在使用动态查询时还可以指定查询列的写法,拿 product, product_price, produt_rank 的分页查询为例
看截图,所有表
![](https://img.haomeiwen.com/i8491882/23b9ddfb29f44a12.png)
实体关系
![](https://img.haomeiwen.com/i8491882/6e9f4d295bff9d20.png)
动态条件查询类
![](https://img.haomeiwen.com/i8491882/ebbc30e2a87fec6e.png)
分页查询方法,也就是service 中的 getPaged
![](https://img.haomeiwen.com/i8491882/186a940e40b57700.png)
最后是输出的sql
![](https://img.haomeiwen.com/i8491882/41e5bee5fecf52bd.png)
![](https://img.haomeiwen.com/i8491882/6049b8ab691569c6.png)
基本完美解决这种分页查询,关联多表,可以指定列查询和支持动态条件查询复用的情况
如果自己手写原生sql拼接查询条件代码更为繁杂,可供参考,指定列查询,会给商品和订单分页查询,在sql提升优化