CriteriaQuery notlike写法
时间: 2024-10-10 18:14:29 浏览: 28
SQL中代替Like语句的另一种写法
CriteriaQuery 是 JPA(Java Persistence API)中用于构建动态查询条件的一种方式,它允许开发者在运行时构造复杂的 HQL(Hibernate Query Language)表达式。如果你想使用 `not like` 条件来过滤数据,你可以这样做:
```java
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
// 假设我们有一个名为 User 的实体类,字段名是 name
CriteriaQuery<User> query = cb.createQuery(User.class);
Root<User> userRoot = query.from(User.class);
// 定义 criteria
Predicate predicate = cb.not(cb.like(userRoot.get("name"), "%keyword%"));
// 添加到查询中
query.select(userRoot).where(predicate);
List<User> users = entityManager.createQuery(query).getResultList();
```
在这个例子中,`cb` 是 `CriteriaBuilder` 的实例,`"%keyword%"` 是你想排除的模式。这个 `not like` 操作会返回所有名字不包含指定关键字的用户。
阅读全文