我有一个糟糕的数据库设计,我想用hibernate类注释进行映射。我正在寻找以下行为的解决方案:
当要求hibernate获取给定ID的容器时,它还应该根据Container.content
字段的值获取并设置Container.type
字段的项目。
如何根据类型字段告诉hibernate要加入哪个表?
到目前为止的课程:
@Table(name="CONTAINER")
public class Container {
@Id
@Column
private int id;
@Column
private IContent content;
@Column
private Type type;
// Other columns
}
Type值定义在哪个表中查找内容字段:
public enum Type {
TYPE_A, // => Table CONTENT_A
TYE_B // => Table CONTENT_B
}
以下两个表反映了Type-Enum:
@Table(name="CONTENT_A")
public class AContent implements IContent {
@Id
@Column
private int id;
// Other columns
}
@Table(name="CONTENT_B")
public class BContent implements IContent {
@Id
@Column
private int id;
// Other columns
}