我有一个像这样的 Hibernate SQL 查询:
public void funcA(String str) {
StringBuilder sql = new StringBuilder();
sql.append("select fieldA from tableA where fieldB like '%:searchKey%'");
...
session.createSQLQuery(sql.toString())
.addScalar("fieldA", StandardBasicTypes.STRING)
.setParameter("searchKey", str);
...
}
当我进行这样的查询时 query.list()
,出现以下错误:
[WARNING ] SQL Error: -7, SQLState: 42601[ERROR ] The character "%" following "fieldB like" is not valid.
[ERROR ] An error occurred during implicit system action type "2". Information returned for the error includes SQLCODE "-7", SQLSTATE "42601" and message tokens "%|fieldB like".
我可以知道如何解决这个问题吗?
最佳答案
这应该有效:
public void funcA(String str) {
StringBuilder sql = new StringBuilder();
sql.append("select fieldA from tableA where fieldB like :searchKey");
...
session.createSQLQuery(sql.toString())
.addScalar("fieldA", StandardBasicTypes.STRING)
.setParameter("searchKey", "%" + str + "%");
...
}
关于java - 如何使用 like 和 % 进行 Hibernate 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967255/