【发布时间】:2015-05-12 22:33:52
【问题描述】:
我需要保存一个数据结构,它的值可以是字符串、双精度或日期。
有没有办法根据表格进行一对一映射?
我试过了……
@Table(name = "FIELD_CRITERIA")
public class FieldCriteriaEntity implements Identifiable{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "CRITERIA_KEY", unique = true, nullable = false)
private Long id;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL,optional=true)
@JoinColumn(name="CRITERIA_ID")
private StringCriteriaEntity stringCriteria;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL,optional=true)
@JoinColumn(name="CRITERIA_ID")
private NumeriCriteriaEntity numericCriteria;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL,optional=true)
@JoinColumn(name="CRITERIA_ID")
private DateCriteriaEntity dateCriteria;
}
但是,hibernate 不喜欢这样:
原因:org.hibernate.MappingException:实体映射中的重复列:
有没有办法配置休眠来处理这个问题?还是我应该简单地重新建模 FIELD_CRITERIA 表以包含 3 个可选的 OneToMany 关系?
【问题讨论】:
标签: java database hibernate database-design