Person と Phone (1 対多の関係) の 2 つのエンティティがあります。JoinTable を使用したい:
class Person
@OneToMany()
@JoinTable(name="PERSON_PHONES",
joinColumns={ @JoinColumn(name="PERSON_ID") },
inverseJoinColumns={ @JoinColumn(name="PHONE_ID") })
public List<Phone> getPhones(){...}
しかし、なぜかJoinTableが使えないので、クラスPersonPhoneを書く必要があります。関係に疑問を感じる、こんな感じでしょうか?
Person -> PersonPhone: 1 対多の双方向 PersonPhone -> Phone: 1 対 1 の単方向
もう 1 つの質問ですが、このカスケード ルールを定義すると、次のようになります。
class Person {
@OneToMany(cascade=CascadeType.ALL,mappedBy="person")
public List<PersonPhone> getPersonPhones() {...}
...
}
class PersonPhone {
@OneToOne(cascade=CascadeType.ALL)
public Phone getPhone(){...}
...
}
// class phone has not fields for this relation
個人が削除されると、個人の電話は削除されますか?