我创建了一个名为User的新实体Bean 我想扩展它,制作一些名为User1的新实体Bean(以及User2,User3等等......代表用户类型/组)。
User1具有与User(id,type,username,password,name,surname)相同的属性,以及其他一些属性(如通用用户没有的email,phoneNumber)。
我希望User1上所有新添加的属性存储在类似逻辑的项目中的不同表中: USER(id,username,password,type,name,surname); USER1(userId,email,phoneNumber);
这意味着USER1将是USER和USER1之间在id = userId上的连接表。 它有意义吗?
这是我的用户实体Bean代码。
package com.entity;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@DiscriminatorColumn(name="type")
public class User implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String username;
private String password;
private String type;
private String name;
private String surname;
public User(String username, String password, String name, String surname) {
super();
this.setUsername(username);
this.setPassword(password);
this.setName(name);
this.setSurname(surname);
}
public User() {
super();
}
...
getter&setter methods here
...
}
答案 0 :(得分:1)
我使用注释@Inheritance(strategy=InheritanceType.JONED)
对于混合策略: http://forums.oracle.com/forums/thread.jspa?threadID=1030022