:私は次のコードで書かれているJPA継承とOneToMany関係
@Entity
@Table(name="person")
@Inheritance(strategy=InheritanceType.JOINED)
public class Person {
private Long id;
protected String email;
private String firstName;
private String lastName;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
...
}
@Entity
@Table(name="users")
@ForeignKey(name="userPersonId")
public class User extends Person {
private String userName;
private String password;
private Date registrationDate;
private Set<? extends Person> contacts;
@OneToMany(targetEntity = com.blah.Person.class ,fetch = FetchType.LAZY, cascade=CascadeType.ALL)
@ForeignKey(name="contactId")
@JoinColumn(name="contactId")
public Set<? extends Person> getContacts() {
return contacts;
}
...
}
ユーザーが人であると、ユーザーはそれをとして維持したいという「人」(パーソン-S)のセットを持つことができますが連絡先。だから私がここに持つのは、継承(UserがPersonを派生)と集約関係(UserはPersonを含む)の両方です。
私は3つのテーブル期待するデータベーステーブルの面では:接触テーブルは、ユーザと人の両方のテーブルに外部キーが含まれてい
- 人
- ユーザー
- 接触
を。 は、実際に私は以下の2つの表(人物やユーザー)があります。私は私の注釈の一部が誤っていることを推測 alt text http://picasaweb.google.com/yaneeve.shekel/ProgrammingRelated#5338298839877393922
を...私が間違って何をしましたか?