休眠 - 让它映射

时间:2013-05-12 09:18:05

标签: java database hibernate

我有以下数据库模型:

enter image description here

我有几个intdoublestringdate的子类型,它们的抽象父类型为templateValue。所有人都有valueType的共同点。每个TemplateValueMap都有一个TemplateValue。此外,每个TemplateValueMap都有一个TemplateItemtemplateItem valueType的{​​{1}}是valueTypes的{​​{1}}之一。如果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; 看起来像这样:

@Entity 公共类TemplateItems实现Serializable {

TemplateValueItem

我的问题是如何告诉hibernate它应该决定是否使用@Id @GeneratedValue private Long id; @OneToOne private TemplateValue tempValue; private String label; private String valueType; private String displayType; 来创建valueType的{​​{1}}?由于value中的valueType而创建此值,并在TemplateValueString/Double/Int

中设置

我非常感谢你的回答!

更新

enter image description here

0 个答案:

没有答案