SpringDataJPA实现动态查询的两种方法-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联自2013年创立以来,先为临海等服务建站,临海等地企业,进行企业商务咨询服务。为临海企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

前言

一般在写业务接口的过程中,很有可能需要实现可以动态组合各种查询条件的接口。如果我们根据一种查询条件组合一个方法的做法来写,那么将会有大量方法存在,繁琐,维护起来相当困难。想要实现动态查询,其实就是要实现拼接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 userId;
  public static volatile SingularAttribute name;
  public static volatile SingularAttribute age;
  public static volatile SingularAttribute high;
}

网页名称:SpringDataJPA实现动态查询的两种方法-创新互联
文章来源:http://pwwzsj.com/article/cdgshh.html