MySQL听起来像是对Hibernate的查询

时间:2013-03-02 07:46:39

标签: java mysql hibernate

我对Hibernate很新,有没有办法可以将以下MySQL查询转换为HQL或Criteria查询:

SELECT * FROM items WHERE itemname SOUNDS LIKE 'some name'

如果没有,是否有任何变通方法可以使用Hibernate实现类似的功能?

2 个答案:

答案 0 :(得分:5)

来自mysql doc

  

expr1 SOUNDS LIKE expr2

     

这与SOUNDEX(expr1)= SOUNDEX(expr2)

相同

MySQLDialect似乎支持soundex。所以做这样的事情:

SELECT * FROM items WHERE soundex(itemname) = soundex('some name')

或在HQL中

Query q = session.createQuery
   ("from items  e where soundex(e.itemname)  =  soundex('%some name%') ");

应该有用。

答案 1 :(得分:4)

您可以使用native SQL。在您的情况下,只需:

sess.createSQLQuery
    ("SELECT * FROM items WHERE itemname SOUNDS LIKE 'some name'").list();