我在我的一个实体中定义了以下集合:
@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不会填充订单栏?
答案 0 :(得分:1)
您在一个不是Ordered集合的Set上使用了OrderColumn
。我怀疑这可能是问题。
您可以将其从Set更改为List并尝试。