2016-04-19 4 views
0

私はHibernateを初めて使用しているので、自分の状況を知ることができません。多対多関係のようなものですが、唯一の違いは、データがテーブル1に挿入され、テーブル1に挿入されないようにすることです。Hibernateで表1と表2にデータを追加せずに表3にデータを作成し追加する方法

表1と表2にはすでにすべてのデータがあります。

電流要件:

表1は、ユーザID、姓、名を(既に存在する)を有する 表2は、文書ID、文書名、文書のコンテンツを(既に存在する)を有する 表3ユーザIDを有していなければならないと文書ID 両方表1 &表2には、すべてのデータが事前に入力済みです。 ユーザーが文書を閲覧した場合、表1 &表2で継続または更新せずに3番目の表に項目を追加したいとします。 ユーザーが閲覧した文書のデータを維持して、ログオフしてログインし直すと、未読のドキュメントだけを表示することができます。 この状況でHibernateを最大限に活用するにはどうすればよいですか?

答えて

1

人やドキュメントテーブルを更新する必要はありません。 Hibernateは、すべてを正しく構成すれば、3番目のテーブル(結合テーブル)にエントリを追加できます。文書を入れDB

  • から負荷ドキュメント
  • DB
  • から

    • 負荷の人:あなたは@ManyToManyでコレクションに注釈を付けると、あなたが代わりに新しいものを作成するためのDBからのエンティティで作業していることを確認してください 一人一人のエンティティの保存

    の一覧はこちらをご覧ください:良いウォークスルーのためのhttp://www.mkyong.com/hibernate/hibernate-many-to-many-relationship-example-annotation/

    +0

    あなたはドキュメントリストがそこに存在し、ドキュメントリストには人リストがそこにあることを意味します。既存のオブジェクトをロードしてから2つのリストのセットを実行し、オブジェクトを保存する必要があります。これは、既存の2つのテーブルではなく3番目のテーブルにのみ保持されますか?私はこれのための例を見つけることができません。 – user1767444

    +0

    DBは、すべてが正しく設定されている場合にのみjoin_tableを変更します。あなたは上のリンクで説明したようにこれを行うことができますが、あなたのモデルに応じて、ここで説明したようなManyToOne関係を試すこともできます:http://www.codejava.net/frameworks/hibernate/hibernate-one-to-many-association -on-join-table-annotations-example さらに明確にしたい場合は、3番目のテーブルのクラスを作成することもできます。 ReadStatus {Person p;ドキュメントd}を作成し、これを第3のテーブルにマッピングします。 –

    +0

    私はアプローチの例を教えてください。与えたリンクは3つのテーブルすべてに値を挿入するため、多対多の関係を持つ結合テーブルにのみデータを挿入する必要があります – user1767444

    関連する問題