我正在使用2框架来获取和保存我的数据(MyBatis用于获取和Hibernate用于保存/更新/删除)。我想要的是用mybatis获取一些实体并将其分配给一个新实体并用hibernate保存它
示例:
我通过mybatis查询获得“角色”列表。 然后我试图创建一个具有该映射的新实体:
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "id_role")
private Role role;
我正在使用列表中的一个角色来执行setRole。然后我从hibernate调用saveOrUpdate。我得到了这个例外:
对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例
我理解异常但有解决方案吗?
非常感谢你的帮助。
答案 0 :(得分:0)
如何加载角色(通过MyBatis),Hibernate不知道角色已经在数据库中。因此,你看到的例外。解决它的唯一方法是将roleId存储在您的实体中而不是Role对象中。或者,您必须通过Hibernate以及使用它们的实体加载角色。