【问题标题】:MySQL sounds like query to HibernateMySQL 听起来像是对 Hibernate 的查询
【发布时间】:2013-03-02 07:46:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: java mysql hibernate


    【解决方案1】:

    来自mysql doc:

    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写更好的解决方案
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 2015-10-07
      • 2023-03-12
      • 2014-08-08
      相关资源
      最近更新 更多