我对何时使用其中一个或两者都感到困惑。
从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回答中所述。
您应该决定您的平台是否是实体。
所以我的问题是:
@ElementCollection
和@Enumerated
以任何方式重叠或完全独立吗?如果是独立的,我决定我的实体是否被映射,然后它是否恰好是枚举。正确的吗?
如何判断我的枚举是否是实体?一个例子将受到高度赞赏。