1

我正在使用 2 个框架来获取和保存我的数据(MyBatis 用于获取,Hibernate 用于保存/更新/删除)。我想要的是用mybatis获取一些实体并将其分配给一个新实体并用hibernate保存

例子 :

我通过 mybatis 查询得到一个“角色”列表。然后我正在尝试创建一个具有该映射的新实体:

@ManyToOne(fetch = FetchType.LAZY, optional = false)
  @JoinColumn(name = "id_role")
  private Role role;

我只是用列表中的角色之一做一个 setRole。然后我从休眠中调用 saveOrUpdate。我得到这个例外:

对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例

我了解例外情况,但有解决方案吗?

非常感谢你的帮助。

4

1 回答 1

0

加载角色的方式(通过 MyBatis),Hibernate 不知道角色已经在数据库中。因此,您看到的例外。解决它的唯一方法是将 roleId 存储在您的实体中而不是 Role 对象中。或者,您必须通过 Hibernate 加载角色以及使用它们的实体。

于 2013-07-17T15:40:10.747 回答