我有以下数据库模型:

我有几个 , 的子类型,它们int有一个抽象的父类型. 都有共同点。每个人都有一个。也各有一个。那有一个这是其中之一。如果存在,则创建一个表。如果不是,则不创建表。doublestringdatetemplateValuevalueTypeTemplateValueMapTemplateValueTemplateValueMapTemplateItemtemplateItemvalueTypevalueTypesTemplateValuevalueType
我的课程看起来像这样:
@Entity
@DiscriminatorColumn(name="valueType")
public abstract class TemplateValue implements Serializable{
@Id
@GeneratedValue
private Long id;
@NotNull
@Size(min=1, max=32)
private int valueType;
该班级有几个孩子喜欢(对于每个其他班级来说看起来都一样TemplateValueDate/Int/Double):
@Entity
@DiscriminatorValue(value = "stringValue")
public class TemplateValueString extends TemplateValue implements Serializable {
/**
* the int value
*/
@NotNull
@Size(min=1, max=32)
@Pattern(regexp = "[A-Za-z0-9 ]*", message = "Please insert a valid String")
@Column(name="String_value")
private String stringValue;
我TemplateValueMap现在的样子是这样的:
@Entity
public class TemplateValueMap implements Serializable{
@Id
@GeneratedValue
private Long id;
@OneToOne
private TemplateValue tempValue;
@OneToOne
private TemplateItems tempItem;
我的TemplateValueItem样子是这样的:
@Entity 公共类 TemplateItems 实现 Serializable{
@Id
@GeneratedValue
private Long id;
@OneToOne
private TemplateValue tempValue;
private String label;
private String valueType;
private String displayType;
我的问题是如何告诉休眠它应该决定是否valueType使用一个来创建value 一个TemplateValueString/Double/Int?这个值是由于 中的 valueType 而被创建的,TemplateValue并且在TemplateItems
我真的很感谢你的回答!
更新
