|
|
|
Странности с фильтрами в Hibernate
|
|||
|---|---|---|---|
|
#18+
Всем привет! Никто не сталкивался с такими странностями в Hibernate. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Вот так не работает Падает с NullPointerException. stacktracejava.lang.NullPointerException at org.hibernate.hql.ast.util.JoinProcessor.processDynamicFilterParameters(JoinProcessor.java:204) at org.hibernate.hql.ast.util.SyntheticAndFactory.addWhereFragment(SyntheticAndFactory.java:96) at org.hibernate.hql.ast.util.JoinProcessor.addJoinNodes(JoinProcessor.java:162) at org.hibernate.hql.ast.util.JoinProcessor.processJoins(JoinProcessor.java:124) at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:605) at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:672) at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:288) at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:231) at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:231) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:162) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:113) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1624) at com.wiley.tes.e5.progress.reporting.GradingTest.test1(GradingTest.java:378) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:160) at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:233) at org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(SpringMethodRoadie.java:333) at org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:217) at org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:197) at org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:143) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:160) at org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51) at org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44) at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27) at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37) at org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97) at org.junit.runner.JUnitCore.run(JUnitCore.java:130) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Однако если изменить название фильтра, скажем, на filter_ByOwnerId, то все отрабатывает как надо. WTF??? Используется Hibernate 3.6.7, Пробовал также на 4.1.4.Final - то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 10:24:47 |
|
||
|
Странности с фильтрами в Hibernate
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, сам разобрался. Полез я все-таки в исходники Hibernate и обнаружил, что символ "." используется для внутренних нужд. При парсинге строки с условиями фильтрации в качестве delimiters рассматриваются следующие символы: " \n\r\f\t,()=<>&|+-=/*'^![]#~\\\"\"", а потому их в названиях фильтра или параметров нельзя. В доке, честно говоря, не нашел об этом упоминания. Ну ладно, знак подчеркивания-то хоть оставили доступным Просто хотелось идентификаторы покрасивее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2012, 10:52:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37890085&tid=2131299]: |
0ms |
get settings: |
15ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 283ms |
| total: | 450ms |

| 0 / 0 |
