我对设计问题有疑问如下:
模板类包含基本信息
扩展模板类的订阅类
是否可以同时拥有两个ID - 模板的1个id字段 - 订阅的1个id字段
有两个类,DB中应该有两个表存储并且是持久存储的。 我的设计是:模板可重用并持久化,系统可以创建Subscription对象复制表单Template类,Subscrption类使用与Template不同的生成Id。
因此'模板'需要ID,'订阅'需要我的应用程序的另一个ID。
非常感谢你的帮助。
和编码如下:
Template.class
@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
使用我的Subscription类代码:
@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
}