java - 在 hibernate 中使用 like 和 AND 逻辑进行搜索查询

标签 java mysql hibernate

我们在我的应用程序中使用 hibernate 3.6.3.Final 和 MySql 数据库。我需要使用java将以下Mysql查询转换为HQL。

select * from user where name like "%mohan%" and name like '%ram%';

如何在hibernate和java中执行逻辑AND运算符?

最佳答案

编辑:

您需要动态定义 hql 查询:

String[] likes = {"foo", "bar"};

String myQuery = "select e from User e where 1=1";
for(int i=0; i<likes.length; i++){
    myQuery+= " and e.name like :"+i;
}

Query query = getSessionFactory().getCurrentSession().createQuery(myQuery);

for(int i=0; i<likes.length; i++){
    query.setParameter(i, "%"+likes[i]+"%");
}
query.list();

注意:您可以使用 StringBuilder 来连接字符串

关于java - 在 hibernate 中使用 like 和 AND 逻辑进行搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30800032/

相关文章:

c# - asp.net mvc开发者的Java框架推荐

java - 删除字符串中重复字符的函数

java - 无法运行maven javafx应用程序并且pom文件中出现一些错误

MySQL 在使用 IN 和 OR 时不使用索引

php - 简单的 php mysql 查询只返回两列之一

mysql - SQL 查找对应的阴性和阳性记录

java - "Error calling Driver#connect"使用 hibernate

java - Hibernate 序列生成的自定义

java - 通过 SSH 连接到 docker 容器并执行 Java 程序 (PSVM)

java - 强制执行gradle的部署顺序