我有以下数据库模型:
我有几个 , 的子类型,它们int
有一个抽象的父类型. 都有共同点。每个人都有一个。也各有一个。那有一个这是其中之一。如果存在,则创建一个表。如果不是,则不创建表。double
string
date
templateValue
valueType
TemplateValueMap
TemplateValue
TemplateValueMap
TemplateItem
templateItem
valueType
valueTypes
TemplateValue
valueType
我的课程看起来像这样:
@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
我真的很感谢你的回答!
更新