如何在Spring Data Jpa中使用Specification查询的情况下显式指定仅查询某些字段呢?

戰五渣 发布于 01/20 17:24
阅读 264
收藏 0

后端使用的是Spring boot + Spring Data JPA, 不想将所有字段都查询出来后再筛选,如何在spring data jpa中使用Specification的情况下显式指定要查询哪些字段呢?

如 select manufacturer,model,id,colr from Car 

而不是 select * from Car 

加载中
1
戰五渣
戰五渣

国内JPA的高手在哪里

魔力猫
魔力猫
高手都被Mybatis的喷死了吧。
1
浮云翌日
浮云翌日

Specification 查询还用不了projection查询,如果想用投影查询,可以考虑用querydsl或者spring data jpa的命名查询。这个在官网上有例子。

0
z
zb37259209

直接使用@Select去写试试?

0
漠孤烟
漠孤烟

JPQL:

select new Car(t.manufacturer, t.model, t.id, t.colr) from Car t

0
浮云翌日
浮云翌日

spring data jpa在github上的分支,有人提交代码实现了此功能。需要重写SimpleJpaRepository和其它几个类。我把那几个类上传到gitee上了。地址是https://gitee.com/qidergame/app/tree/master/src/main/java/ 就是org.springframework.data.jpa下面的几个类。

然后新建一个查询的投影类。接口类型的,DTO的暂时不行。

在service中调用。

单元测试后的结果集:

戰五渣
戰五渣
厉害!
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部