java - HIbernate JPA caused by incompatible with javassist.util.proxy.Proxy -


hibernate jpa caused incompatible javassist.util.proxy.proxy.

code

public class entitya {     @id     private string id;      @onetoone(fetch = fetchtype.lazy)     @joincolumn(name = "entityb_id")     private entityb entityb;      @manytoone(fetch = fetchtype.lazy)     @joincolumn(name = "entityc_id")     private entityc entityc; }  string sql = "select o entitya o "         + "left outer join o.entityb o1 "; final typedquery<entitya> query = getem().createquery(sql, entitya.class);  final list<entitya> result = query.getresultlist(); 

questions

when ran above query below exception, did have idea?

my query didn't involved "entityc", why exception throw regarding entityc @ getresultlist() method?

exception

caused by: java.lang.classcastexception: xxx.xx.xx.entityc_$$_javassist_105 incompatible javassist.util.proxy.proxy @ org.hibernate.proxy.pojo.javassist.javassistlazyinitializer.getproxy(javassistlazyinitializer.java:148) @ org.hibernate.proxy.pojo.javassist.javassistproxyfactory.getproxy(javassistproxyfactory.java:73) @ org.hibernate.tuple.entity.abstractentitytuplizer.createproxy(abstractentitytuplizer.java:758) @ org.hibernate.persister.entity.abstractentitypersister.createproxy(abstractentitypersister.java:4419) @ org.hibernate.event.internal.defaultloadeventlistener.createproxyifnecessary(defaultloadeventlistener.java:334) @ org.hibernate.event.internal.defaultloadeventlistener.proxyorload(defaultloadeventlistener.java:260) @ org.hibernate.event.internal.defaultloadeventlistener.onload(defaultloadeventlistener.java:152) @ org.hibernate.internal.sessionimpl.fireload(sessionimpl.java:1053) @ org.hibernate.internal.sessionimpl.internalload(sessionimpl.java:980) @ org.hibernate.type.entitytype.resolveidentifier(entitytype.java:714) @ org.hibernate.type.entitytype.resolve(entitytype.java:502) @ org.hibernate.engine.internal.twophaseload.doinitializeentity(twophaseload.java:168) @ org.hibernate.engine.internal.twophaseload.initializeentity(twophaseload.java:137) @ org.hibernate.loader.loader.initializeentitiesandcollections(loader.java:1112) @ org.hibernate.loader.loader.processresultset(loader.java:969) @ org.hibernate.loader.loader.doquery(loader.java:917) @ org.hibernate.loader.loader.doqueryandinitializenonlazycollections(loader.java:348) @ org.hibernate.loader.loader.dolist(loader.java:2550) @ org.hibernate.loader.loader.dolist(loader.java:2536) @ org.hibernate.loader.loader.listignorequerycache(loader.java:2366) @ org.hibernate.loader.loader.list(loader.java:2361) @ org.hibernate.loader.hql.queryloader.list(queryloader.java:495) @ org.hibernate.hql.internal.ast.querytranslatorimpl.list(querytranslatorimpl.java:357) @ org.hibernate.engine.query.spi.hqlqueryplan.performlist(hqlqueryplan.java:198) @ org.hibernate.internal.sessionimpl.list(sessionimpl.java:1230) @ org.hibernate.internal.queryimpl.list(queryimpl.java:101) @ org.hibernate.ejb.queryimpl.getresultlist(queryimpl.java:268) @ sun.reflect.generatedmethodaccessor213.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:56) @ java.lang.reflect.method.invoke(method.java:620) @ org.springframework.orm.jpa.sharedentitymanagercreator$deferredqueryinvocationhandler.invoke(sharedentitymanagercreator.java:368) @ com.sun.proxy.$proxy153.getresultlist(unknown source) @ com.cimb.module.payment.bill.ce.dao.cemyccpayeeaccessbean.findnormalbypayeenamekeyword(cemyccpayeeaccessbean.java:59) @ com.cimb.module.payment.bill.atom.retrievebillerbykeywordmyatom.performnormalbillersearch(retrievebillerbykeywordmyatom.java:58) @ com.cimb.module.payment.bill.atom.retrievebillerbykeywordmyatom.proceednextstep(retrievebillerbykeywordmyatom.java:45) @ core.logic.defaultlogicprocessor.process(defaultlogicprocessor.java:78) ... 94 more 

ok have encountered problem too. after research here conclusion:

  1. javassist old or missing older spring version, have add / update javassist. can latest maven repositorty. link here!

  2. if getting org.hibernate.lazyinitializationexception: not initialize proxy - no session error, due trying lazy load after connection has been closed. may need add @transactional annotation in service / controller (depending on project's design), in either class level or method level.


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -