扩展SpringDataJpa 的查询功能,添加sql的 in 范围查询,以及能够自定义选择查询结果字段
本人使用SpringDataJpa已经有一段时间了,很享受它给我带来简便的操作数据库的方式,完全可以不用去写SQL语句,爽歪歪。
但是SpringDataJpa提供的原生查询方法类型有限,某些场景下并不能满足使用需求。
例如:
- 一次查询中,我只想要查询数据表中某几个字段,而不是全部字段都取出来,当然
@Query
注解可以实现这个需求,但我并不想通过@Query
注解实现,因为懒!!!不想写SQL - 还有如果我们需要的查询条件里面有
in
的范围查询,原生的并没有提供这个功能啊。最终促使我去搞扩展的就是这个需要。
先展示一下扩展后的使用效果吧。
-
数据表是这样子的
-
我想要查询课程类型是“web”或者是“编程语言” 的课程,而且我只要
id
、courseName
、courseType
和teacherName
这四个字段。 -
测试代码
-
测试结果: 符合预期所想的。
这就搞定了,哈哈,简单吧? 是不是从表面使用上看不出来和原生的有什么区别? 下面是我实现扩展功能的具体代码,仅作为参考哦。