1

データの取得と保存に 2 つのフレームワークを使用しています (取得には MyBatis、保存/更新/削除には Hibernate)。私が欲しいのは、mybatis でいくつかのエンティティを取得し、それを新しいエンティティに割り当てて、休止状態で保存することです

例 :

mybatis クエリで "Role" の一覧を取得します。次に、そのマッピングを持つ新しいエンティティを作成しようとしています:

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

リストからロールの 1 つを使用して setRole を実行しています。次に、休止状態から saveOrUpdate を呼び出します。私はこの例外を受け取ります:

オブジェクトは保存されていない一時インスタンスを参照しています - フラッシュする前に一時インスタンスを保存します

私は例外を理解していますが、解決策はありますか?

どうもありがとうございました。

4

1 に答える 1

0

(MyBatis を介して) ロールをロードする方法では、Hibernate はロールが既にデータベースにあることを知りません。したがって、あなたが見る例外。これを回避する唯一の方法は、Role オブジェクトではなくエンティティに roleId を格納することです。または、Hibernate を介してロールと、それらを使用するエンティティをロードする必要があります。

于 2013-07-17T15:40:10.747 に答える