我在其中一个实体中定义了以下集合:
@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尝试将“ null”插入“ pos”列,但失败了,因为它具有非null约束。 (编辑:如果我删除了非null约束,它将在每行中插入null。)
Hibernate为什么不填充订单列?
最佳答案
您在不是有序集合的集合上使用了OrderColumn
。我怀疑这可能是问题所在。
您可以将其从“设置”更改为“列表”,然后尝试。