2013-03-02 3 views
3

Я довольно новыми для Hibernate, Есть ли способ, что я могу преобразовать следующий MySQL запрос в HQL или критериев запроса получить аналогичную функциональность, реализованную с помощью Hibernate?MySQL звучит как запрос на спящий режим

ответ

4

От mysql doc:

выражение1 ЗВУЧИТ КАК 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%') "); 

должен работать.

+1

Это тоже работает, и я считаю, что это будет лучшее решение, чем писать его в SQL – janith

4

Вы можете использовать native SQL. В вашем случае, просто:

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

Спасибо! Это работает! – janith

+0

Добро пожаловать. –

Смежные вопросы