java - 如何在 Hibernate MySQL 中使用正则表达式?

标签 java mysql hibernate spring-mvc

如何在 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/

相关文章:

java - Spring+Hibernate应用程序的环境特定配置

java - Hibernate 尝试向不存在的表插入数据

java - 如何禁用(或隐藏)JFrame 上的关闭 (x) 按钮?

java - 使用 IntelliJ IDEA 在 Java 项目中突出显示 Jenkinsfile 语法

java - Android 测试代码覆盖率,Eclipse

SQL - 如何使用另一个表中的计数进行排序

php - 从 JSONArray 转换为 JSONObject 处理 Android 时出错

java - 如何获取动态生成的组件的值?

php - Mysql 错误 - 您无法在 FROM 子句中指定用于更新的目标表 'tbl_writerremark'

java - 如何获取倒数第二个输入的数据 - 使用 hibernate 保存在 mysql 数据库中