如何在 MySQL 中为 hibernate 中的选择查询添加正则表达式。我正在使用 ajax 数据表。我的项目是在 spring 4 MVC 和 Hibernate with MySQL 中。 我已经在 hibernate 状态下使用 MongoDB 创建了它,但我不知道如何在 MySQL 中使用。
使用 mongodb 代码 hibernate :
Query query = new Query();
query.addCriteria(Criteria.where("isDeleted").is(IsDeletedEnum.NOTDELETED));
String search = (String) rowStartIdxAndCount[4];
if (StringUtils.isNotBlank(search)) {
String searchExp = ".*" + search + ".*";
Criteria searchCriteria = new Criteria();
searchCriteria.orOperator(Criteria.where("name").regex(searchExp, "i"),
Criteria.where("mobileno").regex(searchExp, "i"),
Criteria.where("email").regex(searchExp, "i"),
Criteria.where("role").regex(searchExp, "i"));
query.addCriteria(searchCriteria);
}
我正在尝试在 Hibernate 中使用 MySQL。但不知道我接下来要写什么?我必须在与 or 运算符一起使用的 name、mobileno、email 和 role 字段中添加正则表达式。
Session session = getSessionFactory().openSession();
session.beginTransaction();
String search = (String) rowStartIdxAndCount[4];
String searchExp = ".*" + search + ".*";
String hql ="SELECT * FROM UserBean WHERE isDeleted=isDeleted OR name REGEXP 'searchExp''i'";
Query query = session.createQuery(hql);
query.setParameter("isDeleted", IsDeletedEnum.NOTDELETED);
那怎么办呢?请帮助我。
最佳答案
一一制定标准:
criteria1
.setProjection(Projections.property("name"))
.add(Restrictions.sqlRestriction("REGEXP pattern")
criteria2
.setProjection(Projections.property("mobileno"))
.add(Restrictions.sqlRestriction("REGEXP pattern")
criteria3
.setProjection(Projections.property("email"))
.add(Restrictions.sqlRestriction("REGEXP pattern")
criteria4
.setProjection(Projections.property("role"))
.add(Restrictions.sqlRestriction("REGEXP pattern")
之后将这些条件添加到 hibernate 查询中:
query.addCriteria(criteria1);
query.addCriteria(criteria2);
query.addCriteria(criteria3);
query.addCriteria(criteria4);
关于java - 如何在 Hibernate MySQL 中使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45953258/