Ich habe eine Hibernate SQL-Abfrage wie folgt aus:Wie mache ich die Hibernate-Abfrage mit like und%?
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);
...
}
, wenn ich eine Abfrage wie diese query.list()
machen, habe ich Fehler folgende:
[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".
Darf ich wissen, wie ich dieses Problem lösen könnte?
Was ist, wenn fieldA ein Long oder Non-String ist? Dann mag Hibernate die Zeichenfolge nicht. Ich möchte immer noch eine "unscharfe" Übereinstimmung (dh. Enthält %%), aber die Spalte ist ein Long. Mysql-Abfragen sind in Ordnung, aber es scheint nicht, dass Ruhezustand ist. –