2016-10-07 1 views
0

が、私はそうようにパラメータのデータベースフィールドとJava String.toLowerCase()lower()機能を使用していますhibernateで大文字と小文字を区別しない検索を実行しようとしている動作していない休止状態:

String query = "from LdapData where lower(ntid) = ? "; 
Query stmt = session.createQuery(query); 
stmt.setString(0, ntid.toLowerCase()); 
result = (List<LdapData>)stmt.list(); 

結果が返送されますSQL Developerの問合せに大文字であることが示されている場合は空のリストです。そのように低いに変換されていないようです。

誰もがこれに間違って見ることができますか?

+0

それは文字列のNTID – tekknow

+0

と、データベースにありますそれはNTID NOT NULL VARCHAR2(50) – tekknow

+0

デバッグのヘルプを求める質問(「なぜこのコードではない? 「作業していますか?」)には、目的の動作、特定の問題またはエラー、および質問自体にそれを再現するために必要な最短コードが含まれていなければなりません。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:最小、完全、および検証可能な例を作成する方法。 –

答えて

0

ようLocalelowercase()の方法を設定するようにしてください。この

String query = "from LdapData where lower(ntid) like ? "; 
+0

なぜそれが違いますか? –

+0

likeは大文字と小文字を区別しません –

+0

...と '='はありませんか? –