2012-03-08 10 views
0

電話番号がcontact[contact, name, cell,work,home...]を超える連絡先エンティティがあり、このテーブルを電話番号で検索して連絡先を検索できるように、参照テーブルphone_number[uid,contactuid,telephonenumber]を作成します。JPA - クイックルックアップテーブルにマップするにはどうすればよいですか?

JPAではどうすれば設定できますか。

  • エンティティは、コンタクトエンティティ
  • から移入されますよう
  • 連絡先番号の削除(または連絡先が削除されるすべてのレコードを削除する)ときphone_numberレコードを削除変更phone_numberレコードをphone_numberエンティティの地図連絡先番号が変更されますか?
  • 私はこれは本当にドメインロジックではないとして、DAOですべてこれを行うには期待していた

..

**アップデート - 賢明なcontact->phone_number関係は、JPAで定義するか、単にでSQLを使用して、それをマッピングすることですDAO?

  • 携帯電話
  • はworkPhone
  • homePhoneを

:私が正しく理解していれば、あなたはすでにいくつかの電話番号フィールドを持つ連絡先のエンティティを持っている

答えて

1

事前に

多くのおかげでそして、あなたは電話番号を与えられた連絡先を探したいと思う。

select c from Contact c 
where c.cellPhone = :phoneNumber 
    or c.workPhone = :phoneNumber 
    or c.homePhone = :phoneNumber 

をしかし、多分あなたはphoneNumbertype(仕事、セルなど)のフィールドを持つ携帯電話のエンティティを持ち、双方向を持っている必要があります。もしそうなら、あなたはそれを行うために、追加のテーブルを必要としません連絡先と電話のOneToManyの関連付け。クエリは、より効率的になるはずです。

です。

+0

ありがとうございましたJB - はい私は探しているが、スキーマは問題ではありません - JPAの関係(連絡先電話の値が更新されたときに起きる呼び出し)です。 – Ian

+0

申し訳ありませんが、私はドンあなたの質問を理解していない。あなたの質問を編集して、あなたがやりたいことやJavaコードに何が問題があるかを示してください。 –

+0

完了 - さらに何かを明確にすることができるかどうか教えてください - ありがとうございました。 – Ian

関連する問題