繁体   English   中英

org.hibernate.LazyInitializationException: 使用 Javers 时无法延迟初始化角色集合

[英]org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role while using Javers

I'm getting the error: org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.fleetx.persistence.model.Account.users, could not initialize proxy - no Session

当我尝试对我尝试使用 Javers 审核的实体之一执行创建操作时。 以下是我的应用程序的结构:

AudityEntity.java

@Data
@Entity
@Table
public class AuditEntity extends Base {
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "account_id", updatable = false)
    @JsonIgnore
    private Account account;

    // other fields
}

Account.java

@Data
@Entity
@Table
public class Account extends Base {
    @OneToMany(mappedBy = "account", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JsonIgnore
    private List<User> users;

    // other fields
}

AuditEntityRepository.java

@JaversSpringDataAuditable
public interface AuditEntityRepository extends JpaRepository<AuditEntityRepository, Long> {
    // crud operations
}

我不想更改private Account account; private List<User> users; FetchType.EAGER

任何帮助,将不胜感激。 谢谢你。

如果您不想更改为FetchType.EAGER ,那么无论您在何处访问Account.getUsers()都需要在事务中,因此不会丢弃 Hibernate Session。 最简单的方法是将@Transactional添加到正在执行获取和 getUsers() 访问的服务或 bean 的方法中。 确保使用@EnableTransactionManagement打开事务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM