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

@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。我怀疑这可能是问题所在。

您可以将其从“设置”更改为“列表”,然后尝试。

10-06 13:58
查看更多