我有一个关于设计问题的问题如下:
模板类包含基本信息
扩展模板类的订阅类
是否可以同时拥有两个 ID - 模板的 1 个 id 字段 - 订阅的 1 个 id 字段
有两个类,数据库中应该有两个表存储并持久化。我的设计是:模板是可重用和持久化的,系统可以创建订阅对象复制表单模板类和订阅类使用生成的不同于模板的Id。
所以“模板”需要一个 ID,“订阅”需要另一个 ID 用于我的应用程序。
非常感谢您的帮助。
和编码如下:
模板类
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
@Table(name="template")
public class Template implements Serializable{
private static final long serialVersionUID = 12345234567867890L;
@Id @GeneratedValue(generator="hibernate-uuid.hex")
@GenericGenerator(name="hibernate-uuid.hex",strategy = "uuid.hex")
@Column(name="id",length = 40)
protected String id;
@NotNull
@Column(name = "template_attribute",length = 32)
protected String template_atrribute;
...
getter and setter and constructor
并使用我的订阅类代码:
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
@javax.persistence.TableGenerator(name="SID",.................)
@Table(name="user_subscription")
public class UserSubscription extends Template implements Serializable{
@GeneratedValue(strategy=GenerationType.TABLE, generator="SID")
@Column(name="subscriptionId",length = 11)
protected Integer subscriptionId;
@NotNull
@Column(name = "start_date")
protected Date startDate;
//getter and setting and constructor
}