gpt4 book ai didi

java - 如何在 hibernate 中编写搜索查询

转载 作者:行者123 更新时间:2023-11-29 03:50:20 26 4
gpt4 key购买 nike

我试图在 hibernate 中编写搜索查询。我从公开 session 源代码中得到了帮助。所以我的查询:

public User getAllUser(String search) {
String[] searchItems = search.split(" ");
try {
String sqlQuery = "SELECT * FROM USER u " + "WHERE u.deleted = 1 ";
sqlQuery += "AND ( ";
for (int i = 0; i < searchItems.length; i++) {
if (i != 0) {
sqlQuery += " OR ";
}
sqlQuery += "( " + "lower(u.last_name) LIKE '"
+ StringUtils.lowerCase("%" + searchItems[i] + "%")
+ "' " + "OR lower(u.first_name) LIKE '"
+ StringUtils.lowerCase("%" + searchItems[i] + "%")
+ "' " + "OR lower(u.username) LIKE '"
+ StringUtils.lowerCase("%" + searchItems[i] + "%")
+ "' " + ") ";
}
sqlQuery += " )";

log.debug("sqlQuery : " + sqlQuery);
Query query = sessionFactory.getCurrentSession().createQuery(
sqlQuery);

return (User) query.list().get(0);

} catch (HibernateException e) {
e.printStackTrace();
}
return null;
}

它说有一个意想不到的标记,但我没有找到它在哪里。

所以我有两个问题:

  1. 如何让它发挥作用。
  2. 如何在 hibernate 中使用 Criteria 和 Projection/Restrictions 编写搜索查询

最佳答案

您可以使用:

    Query query = sessionFactory.getCurrentSession().createQuery("" +
"select * from OdontogramaDiagnosticoModel where odontologia = :idOdontologia");
query.setParameter("idOdontologia", "102");
return query.list();

这里有两点你应该注意:

另一个例子:

sessionFactory.getCurrentSession().createCriteria(OdontologiaDiagnostico.class)
.add(Restrictions.eq("diagnosticosClinicos", "test"));

关于java - 如何在 hibernate 中编写搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9080152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com