【发布时间】:2017-08-30 06:19:10
【问题描述】:
如何在 MySQL 中为休眠中的选择查询添加正则表达式。我正在使用 ajax 数据表。我的项目在 Spring 4 MVC 和 Hibernate with MySQL 中。 我已经用 MongoDB 在 hibernate 中创建了这个,但我不知道如何在 MySQL 中使用。
使用 mongodb 代码休眠:
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);
}
我正在尝试使用 MySQL 的 Hibernate。但不知道接下来我要写什么?我必须在名称、手机号、电子邮件和角色字段中添加正则表达式,用于或运算符。
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);
那该怎么做呢?请帮帮我。
【问题讨论】:
-
你的意思是如何对多列进行搜索操作? @Harsh 在休眠中
-
是的,但是使用 or 操作和正则表达式。你可以看到 MongoDB 代码。这是基于条件的查询,我必须创建基于 hql 的查询。
-
给我 SQL 我把它转换成 HQL。我对 NoSQL 不太熟悉
标签: java mysql hibernate spring-mvc