休眠插入 null 的订单列值



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

@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约束。(编辑:如果我删除非空约束,它会在每一行中插入空。

为什么休眠不填充订单列?

> 您已在不是有序集合的集合上使用OrderColumn。我怀疑这可能是问题所在。

您可以从"设置并尝试"将其更改为"列表"。

最新更新