1

我有以下数据库模型:

在此处输入图像描述

我有几个 , 的子类型,它们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

我真的很感谢你的回答!

更新

在此处输入图像描述

4

0 回答 0