我对 Hibernate 很陌生,有没有办法可以将以下 MySQL 查询转换为 HQL 或 Criteria 查询:
SELECT * FROM items WHERE itemname SOUNDS LIKE 'some name'
如果没有,是否有任何解决方法可以使用 Hibernate 实现类似的功能?
来自mysql 文档:
expr1 听起来像 expr2
这与 SOUNDEX(expr1) = SOUNDEX(expr2) 相同
并且soundex
似乎受MySQLDialect支持。所以做这样的事情:
SELECT * FROM items WHERE soundex(itemname) = soundex('some name')
或在 HQL 中
Query q = session.createQuery
("from items e where soundex(e.itemname) = soundex('%some name%') ");
应该管用。
您可以使用本机 SQL。在您的情况下,只需:
sess.createSQLQuery
("SELECT * FROM items WHERE itemname SOUNDS LIKE 'some name'").list();