3

私は Hibernate を初めて使用します。次の MySQL クエリを HQL または Criteria クエリに変換する方法はありますか?

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

そうでない場合、Hibernate を使用して同様の機能を実装するための回避策はありますか?

4

2 に答える 2

5

mysqlドキュメントから:

expr1 は 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%') ");

動作するはずです。

于 2013-03-02T08:05:09.657 に答える
4

ネイティブ SQLを使用できます。あなたの場合、単に:

sess.createSQLQuery
    ("SELECT * FROM items WHERE itemname SOUNDS LIKE 'some name'").list();
于 2013-03-02T07:58:37.493 に答える