`
messi_18
  • 浏览: 96574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

an example of Hibernate in Groovy

阅读更多
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from demo.Book]

	at org.hibernate.hql.ast.HqlLexer.panic(HqlLexer.java:80)

	at antlr.CharScanner.setTokenObjectClass(CharScanner.java:338)

	at org.hibernate.hql.ast.HqlLexer.setTokenObjectClass(HqlLexer.java:54)

	at antlr.CharScanner.<init>(CharScanner.java:49)

	at antlr.CharScanner.<init>(CharScanner.java:58)

	at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:56)

	at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:53)

	at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:50)

	at org.hibernate.hql.ast.HqlLexer.<init>(HqlLexer.java:49)

	at org.hibernate.hql.ast.HqlParser.getInstance(HqlParser.java:67)

	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:265)

	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)

	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)

	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)

	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)

	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)

	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)

	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)

	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:601)

	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)

	at com.sun.proxy.$Proxy13.createQuery(Unknown Source)

	at org.hibernate.Session$createQuery.call(Unknown Source)

	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)

	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)

	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)

	at demo.ConsoleScript1.run(ConsoleScript1:55)

	at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257)

	at groovy.lang.GroovyShell.run(GroovyShell.java:481)

	at groovy.lang.GroovyShell.run(GroovyShell.java:163)

	at groovy.lang.GroovyShell$run.call(Unknown Source)

	at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy:951)

	at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:601)

	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)

	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)

	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)

	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)

	at groovy.lang.Closure.call(Closure.java:411)

	at groovy.lang.Closure.call(Closure.java:405)

	at groovy.lang.Closure.run(Closure.java:492)

	at java.lang.Thread.run(Thread.java:722)

org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from demo.Book]

	at org.hibernate.hql.ast.HqlLexer.panic(HqlLexer.java:80)

	at antlr.CharScanner.setTokenObjectClass(CharScanner.java:338)

	at org.hibernate.hql.ast.HqlLexer.setTokenObjectClass(HqlLexer.java:54)

	at antlr.CharScanner.<init>(CharScanner.java:49)

	at antlr.CharScanner.<init>(CharScanner.java:58)

	at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:56)

	at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:53)

	at org.hibernate.hql.antlr.HqlBaseLexer.<init>(HqlBaseLexer.java:50)

	at org.hibernate.hql.ast.HqlLexer.<init>(HqlLexer.java:49)

	at org.hibernate.hql.ast.HqlParser.getInstance(HqlParser.java:67)

	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:265)

	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:180)

	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)

	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)

	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)

	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)

	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)

	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)

	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)

	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)

	at com.sun.proxy.$Proxy13.createQuery(Unknown Source)

	at org.hibernate.Session$createQuery.call(Unknown Source)

	at demo.ConsoleScript1.run(ConsoleScript1:55)


This can be fixed by adding following property to the hibernate configuration file hibernate.cfg.xml

<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>

However, this caused another problem:
WARNING: Sanitizing stacktrace:

java.lang.IllegalArgumentException: Can not set java.lang.String field demo.Book.author to demo.Book

	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)

	at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)

	at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:55)

	at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)

	at java.lang.reflect.Field.get(Field.java:372)

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:55)

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.getForInsert(DirectPropertyAccessor.java:63)

	at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValuesToInsert(AbstractEntityTuplizer.java:294)

	at org.hibernate.tuple.entity.PojoEntityTuplizer.getPropertyValuesToInsert(PojoEntityTuplizer.java:239)

	at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValuesToInsert(AbstractEntityPersister.java:3696)

	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)

	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)

	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)

	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)

	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:601)

	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)

	at com.sun.proxy.$Proxy13.save(Unknown Source)

	at org.hibernate.Session$save.call(Unknown Source)

	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)

	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)

	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)

	at demo.ConsoleScript5.run(ConsoleScript5:48)

	at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257)

	at groovy.lang.GroovyShell.run(GroovyShell.java:481)

	at groovy.lang.GroovyShell.run(GroovyShell.java:163)

	at groovy.lang.GroovyShell$run.call(Unknown Source)

	at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy:951)

	at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:601)

	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)

	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)

	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)

	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)

	at groovy.lang.Closure.call(Closure.java:411)

	at groovy.lang.Closure.call(Closure.java:405)

	at groovy.lang.Closure.run(Closure.java:492)

	at java.lang.Thread.run(Thread.java:722)
五月 12, 2013 3:55:35 下午 org.codehaus.groovy.runtime.StackTraceUtils sanitize

WARNING: Sanitizing stacktrace:

org.hibernate.PropertyAccessException: could not get a field value by reflection getter of demo.Book.author

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:58)

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.getForInsert(DirectPropertyAccessor.java:63)

	at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValuesToInsert(AbstractEntityTuplizer.java:294)

	at org.hibernate.tuple.entity.PojoEntityTuplizer.getPropertyValuesToInsert(PojoEntityTuplizer.java:239)

	at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValuesToInsert(AbstractEntityPersister.java:3696)

	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)

	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)

	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)

	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)

	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:601)

	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)

	at com.sun.proxy.$Proxy13.save(Unknown Source)

	at org.hibernate.Session$save.call(Unknown Source)

	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)

	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)

	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)

	at demo.ConsoleScript5.run(ConsoleScript5:48)

	at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257)

	at groovy.lang.GroovyShell.run(GroovyShell.java:481)

	at groovy.lang.GroovyShell.run(GroovyShell.java:163)

	at groovy.lang.GroovyShell$run.call(Unknown Source)

	at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy:951)

	at groovy.ui.Console$_runScriptImpl_closure17.doCall(Console.groovy)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

	at java.lang.reflect.Method.invoke(Method.java:601)

	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)

	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)

	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)

	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)

	at groovy.lang.Closure.call(Closure.java:411)

	at groovy.lang.Closure.call(Closure.java:405)

	at groovy.lang.Closure.run(Closure.java:492)

	at java.lang.Thread.run(Thread.java:722)

Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field demo.Book.author to demo.Book

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:55)

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.getForInsert(DirectPropertyAccessor.java:63)

	at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValuesToInsert(AbstractEntityTuplizer.java:294)

	at org.hibernate.tuple.entity.PojoEntityTuplizer.getPropertyValuesToInsert(PojoEntityTuplizer.java:239)

	at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValuesToInsert(AbstractEntityPersister.java:3696)

	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)

	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)

	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)

	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)

	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)

	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)

	at com.sun.proxy.$Proxy13.save(Unknown Source)

	at org.hibernate.Session$save.call(Unknown Source)

	at demo.ConsoleScript5.run(ConsoleScript5:48)

org.hibernate.PropertyAccessException: could not get a field value by reflection getter of demo.Book.author

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:58)

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.getForInsert(DirectPropertyAccessor.java:63)

	at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValuesToInsert(AbstractEntityTuplizer.java:294)

	at org.hibernate.tuple.entity.PojoEntityTuplizer.getPropertyValuesToInsert(PojoEntityTuplizer.java:239)

	at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValuesToInsert(AbstractEntityPersister.java:3696)

	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:290)

	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)

	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)

	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)

	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)

	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550)

	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546)

	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)

	at com.sun.proxy.$Proxy13.save(Unknown Source)

	at org.hibernate.Session$save.call(Unknown Source)

	at demo.ConsoleScript5.run(ConsoleScript5:48)

Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field demo.Book.author to demo.Book

	at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:55)

	... 19 more


Just as you may notice, I try this demo code in groovy console, after I clear script context, this issue also disappeared.
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics