如何解决与同一实体的多对多关系
我有一个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",nullable = false)})
private List<UserEntity> managers;
@ManyToMany(mappedBy = "managers")
private List<UserEntity> clients;
但不幸的是,我有一个错误:
无法延迟初始化角色集合:com.company.domain.common.entities.UserEntity.managers,无法初始化代理-没有会话
有人可以解释为什么会发生这种情况,如何解决这个问题?非常感谢!
解决方法
问题是在获取数据期间您没有会话。 我不确定您要在哪里获取数据,但是请尝试在此方法中添加@Transactional。
这将确保JPA使用会话来获取数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。