0
@Entity
class Item {
  ...
}

@Entity
class Character {
  ...
  @OneToMany
  public List<Item> getItems() {
    ...
  }
}

@Entity
class Bank {
  ...
  @OneToMany
  public List<Item> getItems() {
    ...
  }
}

我想为带有 DTYPE 字段 {Characters,Bank} 和 ID 的 Item 实体创建一个表。我怎样才能做这样的映射?有任何想法吗?

提前致谢。

4

2 回答 2

0

您应该使用@DiscriminatorColumn()
Read about it here (p. 2.2.4.2)

于 2013-09-16T00:18:33.203 回答
0

好吧,我找到了解决方案 - @WhereJoinTable

@Entity
class Item {
  ...
}

@Entity
class Character {
  ...
  @OneToMany
  ..
  @WhereJoinTable(clause="DTYPE = 'Character'")
  public List<Item> getItems() {
    ...
  }
}

@Entity
class Bank {
  ...
  @OneToMany
  ..
  @WhereJoinTable(clause="DTYPE = 'Bank'")
  public List<Item> getItems() {
    ...
  }
}

当然不要忘记@JoinTable

于 2013-09-16T04:21:35.233 回答