根据列值

时间:2017-10-26 12:29:45

标签: java hibernate join

我有一个糟糕的数据库设计,我想用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
}

0 个答案:

没有答案