萝卜白菜。 2025-01-07 10:12 采纳率: 97.6%
浏览 29
已结题

TongWeb做session复制报错LazyInitializationException

TongWeb做session复制报错LazyInitializationException 具体如下,请问如何解决?

Caused by: org.hibernate.LazyInitializationException: failed to lazily initialize a collection, could not initialize proxy - no Session
    at org.hibernate.collection.internal.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:582)
    at org.hibernate.collection.internal.AbstractPersistentCollection.withTemporarySessionIfNeeded(AbstractPersistentCollection.java:201)
    at org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:145)
    at org.hibernate.collection.internal.PersistentBag.size(PersistentBag.java:261)
    at com.tongweb.serializer.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:65)
    at com.tongweb.serializer.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:22)
    at com.tongweb.serializer.kryo.Kryo.writeObject(Kryo.java:571)
    at com.tongweb.serializer.kryo.serializers.ObjectField.write(ObjectField.java:61)
    ... 42 more

  • 写回答

2条回答 默认 最新

  • 萝卜白菜。 2025-01-10 17:50
    关注

    这是在session复制时要将相关对象序列化,而Hibernate使用懒加载来加载相关数据,就会抛出LazyInitializationException异常。解决办法:
    使用FetchType.EAGER加载策略, 将关联实体的加载策略从FetchType.LAZY(懒加载)改为FetchType.EAGER(立即加载)。这意味着相关联的实体或集合将在查询主实体时一起加载,避免了延迟加载引发的异常。

    @OneToMany(fetch = FetchType.EAGER)
    private Set<Children> children;
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 专家已采纳回答 1月10日
  • 创建了问题 1月7日