私が取り組んでいるプロジェクトは、永続性のためにHibernateを使用しています。
プロジェクトはサブプロジェクトに分割されており、そのうちの4つがここに関連しています。
- メッセージドーム
- ユーザーサービス
- メッセージサービス
- ケースサービス
メッセージエンティティ(user-dom)には、String userID
フィールドとフィールドが含まれてい@Transient String userName
ます。別のエンティティであるCaseは、MessageとOneToOneの関係にあります。問題は次のとおりです。
- メッセージをロードするたびに(直接、メッセージサービスで、またはケースサービスでケースをロードすることによって間接的に)、userNameフィールドを設定する必要があります。
- userNameは、user-serviceを呼び出すことによって取得されます。
- ユーザーサービスをmessage-domから呼び出すことはできません(依存関係の理由から)。
エンティティに@PostLoadアノテーションがあることを確認しましたが、エンティティからサービスを呼び出すことができないため、これらは明らかに役に立ちません。現在、サービスコールは手動で行っていますが、これはエラーが発生しやすくなっています(特に、ケース内に間接的にメッセージをロードする場合)。
メッセージエンティティがロードされるたびにフィールドが設定されるようにするにはどうすればよいですか?