由于与javassist.util.proxy.proxy不兼容而导致HIbernate JPA
由于与javassist.util.proxy.proxy不兼容而导致HIbernate JPA,java,hibernate,jpa,proxy,Java,Hibernate,Jpa,Proxy,HIbernate JPA与javassist.util.proxy.proxy不兼容导致 代码 public class EntityA { @Id private String id; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "entityB_id") private EntityB entityB; @ManyToOne(fetch = FetchType.LAZY)
HIbernate JPA
与javassist.util.proxy.proxy
不兼容导致
代码
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 from EntityA o "
+ "left outer join o.entityB as o1 ";
final TypedQuery<EntityA> query = getEm().createQuery(sql, EntityA.class);
final List<EntityA> result = query.getResultList();
好的,我也遇到了这个问题。 经过研究,我得出以下结论:
org.hibernate.LazyInitializationException:无法初始化代理-无会话
错误,这是因为您试图在连接关闭后执行延迟加载。您可能需要在服务/控制器中添加一个@Transactional
注释(取决于项目的设计),可以是类级别,也可以是方法级别好的,我也遇到了这个问题。 经过研究,我得出以下结论:
org.hibernate.LazyInitializationException:无法初始化代理-无会话
错误,这是因为您试图在连接关闭后执行延迟加载。您可能需要在服务/控制器中添加一个@Transactional
注释(取决于项目的设计),可以是类级别,也可以是方法级别可能类路径上的库有问题。我不认为这是图书馆的问题。我看到很多帖子都是关于java.lang.ClassCastException的:xxxx不能强制转换为javassist.util.proxy.proxy,但这与javassist.util.proxy.proxy不兼容。这种关联似乎迫使我加入父实体上声明的所有实体。可能库有不同的版本,并且可能会根据其版本为
ClassCastException
创建另一条消息。但是,您仍然可能面临相同的问题。您确定异常是由getResultList()
调用引起的吗?是的,非常确定。从堆栈跟踪中可以看到,行号指向“final List result=query.getResultList();”可能是类路径上的库有问题。我不认为这是图书馆的问题。我看到很多帖子都是关于java.lang.ClassCastException的:xxxx不能强制转换为javassist.util.proxy.proxy,但这与javassist.util.proxy.proxy不兼容。这种关联似乎迫使我加入父实体上声明的所有实体。可能库有不同的版本,并且可能会根据其版本为ClassCastException
创建另一条消息。但是,您仍然可能面临相同的问题。您确定异常是由getResultList()
调用引起的吗?是的,非常确定。它显示在堆栈跟踪中,其中的行号指向“final List result=query.getResultList();”
Caused by: java.lang.ClassCastException: xxx.xx.xx.EntityC_$$_javassist_105 incompatible with javassist.util.proxy.Proxy
at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.getProxy(JavassistLazyInitializer.java:148)
at org.hibernate.proxy.pojo.javassist.JavassistProxyFactory.getProxy(JavassistProxyFactory.java:73)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:758)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:4419)
at org.hibernate.event.internal.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:334)
at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:260)
at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1053)
at org.hibernate.internal.SessionImpl.internalLoad(SessionImpl.java:980)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:714)
at org.hibernate.type.EntityType.resolve(EntityType.java:502)
at org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:168)
at org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1112)
at org.hibernate.loader.Loader.processResultSet(Loader.java:969)
at org.hibernate.loader.Loader.doQuery(Loader.java:917)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:348)
at org.hibernate.loader.Loader.doList(Loader.java:2550)
at org.hibernate.loader.Loader.doList(Loader.java:2536)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2366)
at org.hibernate.loader.Loader.list(Loader.java:2361)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:495)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:357)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:198)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1230)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:268)
at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:56)
at java.lang.reflect.Method.invoke(Method.java:620)
at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:368)
at com.sun.proxy.$Proxy153.getResultList(Unknown Source)
at com.cimb.module.payment.bill.ce.dao.CEMYCCPayeeAccessBean.findNormalByPayeeNameKeyword(CEMYCCPayeeAccessBean.java:59)
at com.cimb.module.payment.bill.atom.RetrieveBillerByKeywordMYAtom.performNormalBillerSearch(RetrieveBillerByKeywordMYAtom.java:58)
at com.cimb.module.payment.bill.atom.RetrieveBillerByKeywordMYAtom.proceedNextStep(RetrieveBillerByKeywordMYAtom.java:45)
at core.logic.DefaultLogicProcessor.process(DefaultLogicProcessor.java:78)
... 94 more