0
我在處理表單中的繼承模型時遇到了問題。這裏有一個簡單的例子來理解我的問題。在Teamplate中使用繼承的Play Framework 2.2
類User有兩個子類Employee和Admin。
User.java
@Entity
@MappedSuperclass
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type")
public class User extends Model {
...
}
Employee.java
@Entity
@DiscriminatorValue("employee")
public class Employee extends User{
...
}
Admin.java
@Entity
@DiscriminatorValue("admin")
public class Admin extends AnalysisProcedure {
...
}
現在我想的屁股將多個用戶關聯到具有列表的項目。該列表應該包含員工或管理員的對象。
Project.java
@Entity
public class Project extends Model {
public List<User> users;
}
Web界面是這樣產生的:
@repeat(projectForm("users")) { user =>
<tr>
<td>
@inputText(user("name"))
</td>
...
<tr>
}
表演沒有顯示任何錯誤提交,也沒有新的目標是保持在數據庫中。在調試代碼時,我看到新用戶的實例是User。
Projets.java(控制器)
...
Project project = formProject.get();
List<User> users = project.users;
for(User user : users){
// the user is everytime instance of User
}
...
現在我的問題是如何處理這種傳承的Web界面,所以員工或管理員可以添加到數據庫中?