Tôi có một truy vấn SQL Hibernate như thế này:Cách thực hiện truy vấn Hibernate bằng cách sử dụng like và%?
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);
...
}
khi tôi thực hiện một truy vấn như query.list()
này, tôi đã lỗi sau:
[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".
Tôi có thể biết làm thế nào tôi có thể giải quyết vấn đề này?
Điều gì sẽ xảy ra nếu fieldA là Dài hoặc không phải là chuỗi? Sau đó, hibernate không thích chuỗi. Tôi vẫn muốn làm một trận đấu "mờ" (ví dụ: chứa sử dụng %%) nhưng cột là Long. Mysql truy vấn là tốt với điều này, nhưng nó không có vẻ là hibernate được. –