我想在我的應用程序中實現用戶類型的繼承結構。用戶類型,jpa和Play的繼承問題!框架
@Entity
@Table(name="User_") // Need this since "User" is a reserved name in SQL Server
@Inheritance(strategy=InheritanceType.JOINED)
public class User extends Model {
@Column(nullable=false,unique=true)
public String username;
...
}
@Entity
public class Employee extends User {
...
}
@Entity
public class Client extends User {
...
}
當我這樣做,是那些獲得創建Employee
和Client
表沒有任何外鍵的User_
表,也沒有在User_
表有Employee
或Client
表的任何外鍵。我怎樣才能做到這一點?
理想情況下,我想要一個Employee.username
列,它是User_
的外鍵,所以我其他表可以引用Employee.username
。
我在使用Play! 1.2.5框架和SQL Server 2005
確定沒有創建外鍵? 'id'列應該是一個外鍵。另外,您可以使用@Table(name =「\」User \「」)'。 – axtavt
(必須刪除才能編輯評論)使用名稱時不帶下劃線'@Table(name =「Users」)''用戶'不受限制。使用Azure SQL進行檢查。 – biesior
axtavt,你是對的。經過仔細檢查,id是FK和PK。我並不期待這一點。任何真正將用戶名作爲字符串顯示在「Employee」中的方式?我希望能夠在其他表上做到這一點:'@ManyToOne @JoinColumn(name =「employee」,referencedColumnName =「username」)public Employee employee;' –