休眠降低不起作用

时间:2016-10-07 20:50:06

标签: java hibernate

我试图在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中的查询显示有一个查询时,

结果返回一个空列表,但是大写。似乎它没有被转换为更低的。

有人可以看到这个有什么问题吗?

2 个答案:

答案 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