我试图在hibernate
中进行不区分大小写的搜索,所以我在数据库字段上使用lower()
函数,在参数上使用java String.toLowerCase()
,如下所示: / p>
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 :(得分:0)
试试这个
String query = "from LdapData where lower(ntid) like ? ";
答案 1 :(得分:0)
尝试将Locale
设置为lowercase()
方法,如:
stmt.setString(0, ntid.toLowerCase(new Locale("tr-TR")));
(将tr-TR
替换为您的区域设置ID http://www.oracle.com/technetwork/java/javase/javase7locales-334809.html)