我调用一个服务来加载一个实体。如果我在集成测试中运行它一切都很好,但在服务器上的现实生活中它会失败。
此实体中的某些属性是集合。在这两种情况下,实体都加载了 bean。当我在“query.getSingleResult()”附近使用断点在调试模式下停止执行时,我看到集合已加载。但只是在试运行...
我在 servletcontainer 中停止相同的代码并获得 InvocationException!?
我的环境看起来像:
spring 3.1
hibernate 3.6.6.Final
我尝试过的事情:
- 搜索 context.xml(测试和生产)中的差异 - 在生产
模式下使用其他 context.xml 文件(测试)
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: de.hoeso.gwt.platform.server.domain.common.Person.anschrift, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:383)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:375)
at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:122)
at org.hibernate.collection.PersistentBag.size(PersistentBag.java:248)
at de.hoeso.sis.server.services.common.impl.UserServiceBeanImpl.login(UserServiceBeanImpl.java:397)
at de.hoeso.sis.server.rpc.LoginService.execute(LoginService.java:35)
我发现,在测试模式下,休眠会话已连接并打开。在生产模式下(在 servletcontainer 中,没有通过entitymanager.getDelegate()
.