我有一个User
实体,可以是Manager
或Client
,Manager
可以有很多Clients
,而Client
可以有很多Managers
。
我试图这样映射User
实体:
@Id
@GeneratedValue(strategy = AUTO)
private UUID uuid;
@ManyToMany
@JoinTable(name = "managers_clients",
joinColumns = {
@JoinColumn(name = "clientUuid", referencedColumnName = "uuid", nullable = false)},
inverseJoinColumns = {
@JoinColumn(name = "managerUuid", referencedColumnName = "uuid", nullable = false)})
private List<UserEntity> managers;
@ManyToMany(mappedBy = "managers")
private List<UserEntity> clients;
但不幸的是,我有一个错误:
无法延迟初始化角色集合:com.company.domain.common.entities.UserEntity.managers,无法初始化代理-没有会话
有人可以解释为什么会发生这种情况,如何解决这个问题?非常感谢!
答案 0 :(得分:1)
问题是在获取数据期间您没有会话。 我不确定您要在哪里获取数据,但是请尝试在此方法中添加@Transactional。
这将确保JPA使用会话来获取数据。