mysql jpa 正则,jpa本机查询正则表达式与querydsl一样
时间: 2023-06-16 12:06:27 浏览: 194
JPA 2.0 中提供了正则表达式的支持,可以在 JPQL 中使用正则表达式进行模糊查询。
JPA中使用正则表达式查询,可以使用函数 operator() 来执行正则表达式。例如:
```java
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<User> query = cb.createQuery(User.class);
Root<User> root = query.from(User.class);
query.where(cb.like(root.get("name"), cb.literal("%a%").operator("regexp")));
```
上面的代码使用 JPA 标准的 Criteria API 进行了正则表达式查询,其中 `operator("regexp")` 就是使用正则表达式进行模糊匹配的关键。
另外,Querydsl 也支持正则表达式查询,类似于 JPA Criteria API 的方式,例如:
```java
QUser user = QUser.user;
List<User> result = queryFactory.selectFrom(user)
.where(user.name.matches(".*a.*"))
.fetch();
```
上面的代码使用 Querydsl 进行了正则表达式查询,其中 `matches` 就是使用正则表达式进行模糊匹配的关键。
阅读全文