Hibernate为OrderColumn值

时间:2018-03-12 17:24:56

标签: java hibernate

我在我的一个实体中定义了以下集合:

@ElementCollection(targetClass = Role.class)
@CollectionTable(name = "user_roles", joinColumns = { @JoinColumn(name = "user_id") })
@Column(name = "role_name", nullable = false)
@Enumerated(EnumType.STRING)
@OrderColumn(name = "pos")
public Set<Role> roles;

但是当我尝试保存实体时,Hibernate会尝试插入&#34; null&#34;进入&#34; pos&#34;列失败,因为它具有非空约束。 (编辑:如果我删除非空约束,它会在每行中插入null。)

为什么Hibernate不会填充订单栏?

1 个答案:

答案 0 :(得分:1)

您在一个不是Ordered集合的Set上使用了OrderColumn。我怀疑这可能是问题。

您可以将其从Set更改为List并尝试。