2016-10-07 5 views
0

Я пытаюсь сделать поиск без учета регистра в hibernate так я использую функцию lower() на поле базы данных и Java String.toLowerCase() по параметру, как так: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

Вопросы, требующие помощи для отладки («почему эта треска не является e working? ») должен включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См.: Как создать минимальный, полный и проверенный пример. –

ответ

0

попробовать этот

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

Почему это имеет значение? –

+0

вроде бы нечувствителен к регистру –

+0

... и '=' нет? –

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