Hibernate と JPA 2.0 を使用します。Mail クラスと MailAccount クラスがあります。どちらのクラスも他方への直接参照を持つ必要はありません。現在、Mail クラスには、それが属するアカウントの ID を指す accountId long だけがあります。これは、「アカウント X に属するすべてのメールを取得する」などのクエリを作成するためのものです。私が知る限り、それらに直接参照を与えることは、多くの理由で悪いことです (アカウントには何十万ものメールが関連付けられている可能性があります)。
ただし、これを行う際に、JPA アノテーションで accountId フィールドにアノテーションを付けていません。データベースに関係を認識させたいと思います。主に、accountId がメールアカウントテーブルのエントリの ID を参照していることです (変更のカスケードなどのために)。JPAでこれを行うにはどうすればよいですか?
要するに:
Mail.java で
private long accountId;
MailAccount.java で
private long id;
JPA 経由で Hibernate/JPA に accountId が MailAccount.id を参照していることを伝えるにはどうすればよいですか?