Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 lazy=“false”是“org.hibernate.LazyInitializationException:无法初始化代理-无会话”的唯一解决方案吗_Java_Hibernate_Lazy Initialization - Fatal编程技术网

Java lazy=“false”是“org.hibernate.LazyInitializationException:无法初始化代理-无会话”的唯一解决方案吗

Java lazy=“false”是“org.hibernate.LazyInitializationException:无法初始化代理-无会话”的唯一解决方案吗,java,hibernate,lazy-initialization,Java,Hibernate,Lazy Initialization,“org.hibernate.LazyInitializationException:无法初始化代理-没有会话”给了我很多痛苦。stackoverflow的一些旧线程讨论了这个特定问题。我遵循这些讨论并解决了问题 在hibernate映射xml中,我将lazy=false添加到类标记和标记集合(如set和list)中 问题就这样解决了 lazy=flase是唯一的解决方案吗? 如果我设置lazy=false会发生什么? 我应该在class标记中指定lazy=false吗? 有关更多信息,我正在使

“org.hibernate.LazyInitializationException:无法初始化代理-没有会话”给了我很多痛苦。stackoverflow的一些旧线程讨论了这个特定问题。我遵循这些讨论并解决了问题

在hibernate映射xml中,我将lazy=false添加到类标记和标记集合(如set和list)中

问题就这样解决了

lazy=flase是唯一的解决方案吗? 如果我设置lazy=false会发生什么? 我应该在class标记中指定lazy=false吗? 有关更多信息,我正在使用JBoss 4.2.0.GA,每当我重新启动服务器时,我都会遇到这个问题。

与其在class元素上使用lazy=false,不如在集合上使用它。也就是说,每当您获取用户对象时,由于UserSpaceRole的集合被标记为非lazy,因此集合将我也会被带走的

在class元素中使用lazy=false会产生一些不希望出现的结果。通常,当集合不是如我前面所说的懒惰时,根据您的抓取策略,使用join、select或subselect来抓取整个集合。例如,使用select策略,当您从db中抓取用户时,hibernate会发出两个select语句ts:一个用于用户本身,一个用于集合。但是,hibernate可以选择代理集合中的单个元素。 如果lazy=false,hibernate无法代理这些对象,通常会使用一个查询在两个表之间进行连接。这可能并不总是需要的


但是,正确的方法是首先查看您的体系结构并理解发生异常的原因。您已尝试在关闭会话后访问分离对象的属性或集合。我将查看服务层,了解如何在关闭会话和pa之前获取所需的所有数据正在将对象发送给调用方。

谢谢,很抱歉回复太晚。您能给我推荐一些网站/教程吗?在那里我可以学习使用wicket hibernate spring设计web应用程序的良好体系结构。再次感谢您。