Когда я пытаюсь преобразовать следующий запрос HQL:Hibernate HQL Проблема с в пункте
select distinct rgp.dgRegexGroups.regexGroup, 0 FROM DgRegexPatterns rgp where rgp.dgRegexGroups.id not in (1,05,6,07)
используя Hibernate динамический транслятор запросов, это дает мне правильный SQL, как:
select
distinct dgregexgro1_.regex_group as col_0_0_,
0 as col_1_0_
from
dg_regex_patterns dgregexpat0_,
dg_regex_groups dgregexgro1_
where
dgregexpat0_.regex_group_id=dgregexgro1_.id
and (
dgregexpat0_.regex_group_id not in (1,5,6,7)
)
Но если я добавьте 08 или 09 в предложение IN, это дает мне QuerySyntaxException.
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 9 near line 1, column 136 [select distinct rgp.dgRegexGroups.regexGroup, 0 FROM
com.dataguise.hibernate.DgRegexPatterns rgp where rgp.dgRegexGroups.id not in (09)]
Кто-нибудь знает, почему это происходит? Это проблема с версией спящего режима? Поскольку в настоящее время я использую версию Hibernate-3.3. Кто-нибудь тестировал эту проблему в последней версии спящего режима?
Вы пробовали 8 и 9? 08 и 09 могут быть интерпретированы как (незаконные) восьмеричные числа. – mkm13
Почему вы используете динамический запрос от переводчика? Не можете ли вы напрямую использовать запрос HQL? Как выглядит ваш запрос после добавления 08 и 09? – Arkantos
Привет, mkm13, да, я пробовал с 8 и 9, и он отлично работает с ними, но, пожалуйста, продумайте, почему он считает 08 и 09 незаконными восьмеричными номерами, потому что снова запрос успешно выполняется за 010 ......... ..017 номеров. – LALIT