Tengo una consulta SQL de Hibernate como esto:¿Cómo hacer la consulta Hibernate usando like y%?
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);
...
}
cuando hago una consulta como esta query.list()
, Me siguiente error:
[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".
se puede saber ¿Cómo podría solucionar este problema?
¿qué ocurre si el campo A es largo o no tiene cadena? Entonces hibernate no le gusta la cadena. Todavía quiero hacer una coincidencia "difusa" (es decir, contiene el uso de %%) pero la columna es larga. Las consultas de Mysql están bien con esto, pero no parece que hibernate. –