Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA LazyInitializationException?_Java_Hibernate_Jpa 2.0_Ejb 3.0_Lazy Initialization - Fatal编程技术网

Java JPA LazyInitializationException?

Java JPA LazyInitializationException?,java,hibernate,jpa-2.0,ejb-3.0,lazy-initialization,Java,Hibernate,Jpa 2.0,Ejb 3.0,Lazy Initialization,我使用jquery作为UI,Struts2作为Action,JPA作为数据访问层。我面临的问题是,当我试图从数据库中检索值时,会出现LazyInitializationException。我得到以下跟踪: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.singpost.ctf.core.persistence.CtfTxn.ctfTxnAttribs

我使用jquery作为UI,Struts2作为Action,JPA作为数据访问层。我面临的问题是,当我试图从数据库中检索值时,会出现LazyInitializationException。我得到以下跟踪:

org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.singpost.ctf.core.persistence.CtfTxn.ctfTxnAttribs, no session or session was closed

默认情况下,
Fetch=“LAZY”
,当我将Fetch类型更改为
EAGER
时,代码工作正常,我不知道我还需要做什么。我被困在中间。

如果你试图从一个实体访问一个偷懒的属性,JPA试图再次访问数据库来获取数据。您的问题是,此时您不在交易范围内。有许多方法可以扩展事务,例如使用openSessionInViewFilter

()

我个人更喜欢的是创建传输对象,每个页面一个,只包含必要的数据。您只需要将实体映射到这些传输对象中,例如使用推土机映射器,这非常强大和方便。
这样,管理事务就容易多了,其次,您不需要在前端中使用数据库实体,因为您的前端不需要了解有关持久层的任何信息。

关于stackoverflow上的此异常,以及其他网站上的更多问题,大约有几十个。你检查过其中任何一个吗?@Bozho,因为我没有得到我想要的解决方案,所以只有我重新创建了这个主题。这并不是说我没有引用任何其他资源并发布在这里,我可以在屏幕右侧看到很多引用LazyInitializationException的链接,但没有一个对我有帮助