1. 问题, 当使用JSONArray.fromObject(List<BeanA>)时, beanA中含有BeanB的属性beanB时,会报这个错 2. 解决办法: 使用jsonconfig排除bean类型属性, 有一个排除一个, 嵌套的也一样: JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setExcludes(new String[]{"beanB","beanC"}); jsonCon…
在测试获取数据库中的数据或者在页面获取时,有时会遇到这样的错误提示: failed to lazily initialize a collection of role: com.exam.entity.Question.questionAnswer, no session or session was closed 其中com.exam.entity.Question.questionAnswer为错误的相关类名,根据实际情况而定. 从错误的字面意思可以发现是延迟加载初始化时遇到了问题. 从错误…
public static void main(String[] args) {  DeptEntity dept = getDept("402882e762ae888d0162ae888e420000"); //dept.getEmp()得到子表的记录集合 System.out.println(dept.getEmp()); } private static DeptEntity getDept(String did){ Session session = sessionFactor…
在做ssh项目练习的时候出现问题: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 原因在于hibernate的懒加载出现的问题.在多方中的一方的配置没有指定加载方式,而且一方中的多方是懒加载,因此在获取一方的时候一方是获取到了,但是再获取多方的时候session已经关闭了,这时候会获取不到多方信息,因此报错. 解决办法: 将一方中的多方(one-to-many…
一篇文章需要关联很多个标签,所以他们呈一对多(多对多)的关系 org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.hs.model.Article.tagMo…
可能修复了一个重大的偶尔发生的几乎难以察觉的并且到现在我也没能理解的bug...有时(经常)调用updateNotNullfield方法(原理是从数据库中get一个对象,然后把原对象中非空的值赋予它,再更新.其中为了判断set是否为空使用了size()方法,是此方法引发了懒加载.)更新get.query.criteria等方法取出的对象会出现"failed to lazily initialize a collection of role" 异常,可能是session缓存引起的,但是没…
[示例] @OneToMany(fetch=FetchType.LAZY) @JsonIgnore @Fetch(FetchMode.SELECT) @Cascade(value={CascadeType.SAVE_UPDATE}) @JoinColumn(name="userId",updatable=false) private Set<UserRoleBean> userRoleSet = new HashSet<UserRoleBean>(); ----…
最近在通过配置实体类的方式,正向自动扫描注解方式配置的hibernate类文件来生成数据库的方法搭建环境,遇到了许多问题. 通过数据库配置hibernate的时候,大家都知道是在实体类对应生成的.hbm.xml文件中查看一对多和多对多的关系. 当报failed to lazily initialize a collection of role异常的时候,往往是因为懒加载的问题导致的. 可以在.hbm.xml文件中,将lazy="false",这样就不会报这个异常了. 但是在自动扫描注解…
hibernate懒加载的问题,failed to lazily initialize a collection of role hibernate懒加载的问题,failed to lazily initialize a collection of role,有需要的朋友可以参考下. 今天往项目里添加了一个many-to-many的关联,发现即便是设置lazy=false也还是会报连接关闭的错误,打死都取不到数据. 可是原来有的many-to-one关联,设置了lazy=false是没问题的啊.…
引起原因:hibernate加载关联对象的方式有懒加载方式和立即加载方式. 如果在多对一的配置中没有指定加载方式,而一对多的配置中指定了懒加载方式,因此在获取一方是可获取到值,而获取多方时session已经关闭,这时候获取不到多方信息,因此报错. 解决方法:将一对多的加载方式改为立即加载,将多对一的加载改为懒加载. 将一对多的注解配置改为如下所示: @OneToMany(mappedBy="topicEntity",fetch = FetchType.EAGER) public Lis…