CriteriaBuilder 的like
时间: 2024-05-01 20:23:14 浏览: 12
在使用 JPA 的 CriteriaBuilder 进行动态查询时,可以使用 like 方法来实现模糊查询。like 方法的语法如下:
```java
Predicate like(Expression<String> x, String pattern);
Predicate like(Expression<String> x, Expression<String> pattern);
```
其中,第一个参数是要查询的字段,第二个参数是模糊查询的匹配模式。匹配模式中可以包含 % 表示任意字符,和 _ 表示单个字符。例如:
```java
String pattern = "%apple%";
Predicate predicate = builder.like(root.get("name"), pattern);
```
上面的代码表示查询 name 字段中包含 "apple" 的记录。如果要查询以 "apple" 开头的记录,则可以使用:
```java
String pattern = "apple%";
Predicate predicate = builder.like(root.get("name"), pattern);
```
如果要查询以 "apple" 结尾的记录,则可以使用:
```java
String pattern = "%apple";
Predicate predicate = builder.like(root.get("name"), pattern);
```
还可以使用多个 like 条件组合进行查询,例如:
```java
String pattern1 = "%apple%";
String pattern2 = "%orange%";
Predicate predicate1 = builder.like(root.get("name"), pattern1);
Predicate predicate2 = builder.like(root.get("name"), pattern2);
Predicate predicate = builder.or(predicate1, predicate2);
```