【发布时间】:2018-03-12 17:24:56
【问题描述】:
我在我的一个实体中定义了以下集合:
@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 约束,因此失败。 (编辑:如果我删除非空约束,它会在每一行中插入空值。)
为什么 Hibernate 不填充订单列?
【问题讨论】:
-
AFAIR,它首先插入 null,然后更新行以设置它们的顺序。
-
@JBNizet 我尝试删除非空约束,但随后将它们全部保留为空。