Likeを使用してHQLのキーワードをフィルタリングする前に、列をテーブルから大文字に変更したいのですが?
これが私の質問です
SELECT abc
FROM ABC abc
WHERE abc.id = ?
And upper(abc.description) like '%?%'
ありがとう
HQLは、EJB3.0仕様でSELECT
およびWHERE
句で定義されているupper()
関数をサポートします。ドキュメントから:
14.10。式
- .。
- EJB-QL 3.0で定義されている関数または演算子:
substring()
、trim()
、lower()
、upper()
、length()
、locate()
、abs()
、sqrt()
、bit_length()
、mod()
- .。
したがって、以下が機能するはずです。
from DomesticCat cat where upper(cat.name) like 'FRI%'
私はHQLでサンプルクエリを書いています:
session.createQuery(from Certificate where lower(assignedTo)=:userName)
.setString("userName",username);
前提条件:フィールドCertificate
を持つassignedTo
という名前のテーブルが存在します。 session
はHibernateセッションです。