前言一般在写业务接口的过程中,很有可能需要实现可以动态组合各种查询条件的接口。如果我们根据一种查询条件组合一个方法的做法来写,那么将会有大量方法存在,繁琐,维护起来相当困难。想要实现动态查询,其实就是要实现拼接sql语句。无论实现如何复杂,
前言
一般在写业务接口的过程中,很有可能需要实现可以动态组合各种查询条件的接口。如果我们根据一种查询条件组合一个方法的做法来写,那么将会有大量方法存在,繁琐,维护起来相当困难。想要实现动态查询,其实就是要实现拼接sql语句。无论实现如何复杂,基本都是包括select的字段,from或者join的表,where或者having的条件。在spring Data JPA有两种方法可以实现查询条件的动态查询,两种方法都用到了Criteria api。
Criteria API
这套API可用于构建对数据库的查询。
类型安全。通过定义元数据模型,在程序编译阶段就可以对类型进行检查,不像SQL需要与Mysql进行交互后才能发现类型问题。
如下即为元数据模型。创建一个元模型类,类名最后一个字符为下划线,内部的成员变量与UserInfo.class这个实体类的属性值相对应。
@StaticMetamodel(UserInfo.class)public class UserInfo_ { public static volatile SingularAttribute<UserInfo, Integer> userId; public static volatile SingularAttribute<UserInfo, String> name; public static volatile SingularAttribute<UserInfo, Integer> age; public static volatile SingularAttribute<UserInfo, Long> high;}
--结束END--
本文标题: Spring Data JPA实现动态查询的两种方法
本文链接: https://www.lsjlt.com/news/227152.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
2024-04-28
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0