6

システムに保存されているデータにアクセスするためのAPIに取り組んでいます。システムには、人、予定、およびそれらの予定に関連する手順などが含まれています。私のアプリケーションは厳密に読み取り専用になります。

Spring w / RowMapperを使用して、「Person」、「」、「」Appointmentなどのオブジェクトを作成していますProcedure。各要素にDAOがあります。(すなわち:PersonDAO.getById()、、PersonDAO.getByName()..)。

Appointmentオブジェクトへの参照があるという問題が発生しPersonます。Personオブジェクト内でその予定への参照があると便利ですが、Personこれらをロードし始めると、循環参照になります。

だから、私の質問はこれを処理する正しい方法だと思います。POJOに参照(Id)を入れてから、ビジネスレイヤー(?)に情報を取得するための正しい呼び出しを行わせるだけですか?または、実際のP​​OJOでDAOへの参照を何らかの方法で渡して、参照されたときにオブジェクトオブジェクトを遅延ロードできるようにすることはできますか?では、循環参照をどのように処理しますか?私が持っていて、Personすべての予定を怠惰にロードすると、それらの予定にも担当者が関連付けられます。これをロードすると、アポイントメントをロードPersonしているのとは異なる情報が含まれる可能性があります。Person

Person(オブジェクトx)遅延ロード->予定は遅延ロードできますPerson(オブジェクトx')。

Person私が彼らの予定を怠惰にロードするために行った時までに変わっていたかもしれないので。同じオブジェクトを参照するために、Personオブジェクトが本当に必要です。AppointmentPerson

私はこれにすべて巻き込まれています。私は「それを機能させる」ことができることを知っていますが、私は良い解決策を見つけようと試みたいと思います。これにHibernateを使用することを考えていましたが、それは本当にやり過ぎだと思いました。多分そうではありません。

4

2 に答える 2

2

あなたは、Hibernateが特定の(そして一般的に非常に優れた)サポートを提供する双方向の関連付けについて説明しています。

ドキュメントでそれを行う方法を読んでください。

これを手で転がすと、かなり面倒でバグが発生しやすくなります。私はそれをお勧めしません。HibernateのようなORMツールのパワーを使用してください。それが彼らの目的です。

于 2010-01-09T20:54:16.307 に答える
0

Hibernateを使用するという提案を拡張して、HibernateがサポートするJPAアノテーションサポートを確認することをお勧めします(これはJ2EE仕様の一部であると思います)。@ManyToManyアノテーションを使用してクラスにアノテーションを付けることができます。これらのドキュメントをチェックしてください:

https://www.hibernate.org/397.html

于 2010-01-09T21:28:27.440 に答える