0
我寫了下面的代碼:JPA繼承和一對多關係
@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),它希望保持作爲聯繫人。所以,我在這裏的是繼承(用戶派生人)和聚合關係(用戶包含人 - S)。
在數據庫表方面我希望3個表:
- 人
- 用戶
- 接觸
凡接觸表包含外鍵的用戶和人表。 實際上我只有以下兩個表(個人和用戶): alt text http://picasaweb.google.com/yaneeve.shekel/ProgrammingRelated#5338298839877393922
我想,我的一些註釋是不正確的......我做了什麼錯?