@ElementCollection vs @Enumerated(EnumType.STRING),以及如何判断它我的枚举是一个实体

时间:2015-12-14 09:43:43

标签: java jpa database-design enums

我对何时使用其中一个或两者都感到困惑。

this问题的答案中,我得到@ElementCollection,当我们想要映射非实体时。但是,似乎有两种情况同时使用的情况,如here

  @ElementCollection(targetClass=Role.class)
  @JoinTable(name = "USER_ROLES", joinColumns = @JoinColumn(name = "USER_ID"))
  @Enumerated(EnumType.STRING)
  @Column(name = "role", nullable = false)
  public Set<Role> getRoles() {
    return roles;
  }

here

@ElementCollection(targetClass = Days.class)
@CollectionTable(name = "days", joinColumns = @JoinColumn(name = "rule_id"))
@Column(name = "daysOfWeek", nullable = false)
@Enumerated(EnumType.STRING)
public Set<Days> getDays() {
    return days;
}

但是,当我们不应该一起去的时候,我真的不明白。我想,但我不确定,问题是我的枚举是否是一个实体,如this回答中所述。

  

您应该决定您的平台是否是实体。

所以我的问题是:

  1. @ElementCollection@Enumerated以任何方式重叠或完全独立吗?如果是独立的,我决定我的实体是否被映射,然后它是否恰好是枚举。正确的吗?

  2. 如何判断我的枚举是否是实体?一个例子将受到高度赞赏。

0 个答案:

没有答案