在涉及m-n关系时,一般建议使用
我试图将此与注释
Set
而非List
,因为它对于某些操作具有更好的性能。我试图将此与注释
@OrderColumn(name = "position")
结合使用。我这样做是为了不需要“join table class”。我希望Hibernate根据集合中元素的位置设置位置值,因此我使用LinkedHashSet
。@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER)
@JoinTable(name = "bundle_group_to_bundle", joinColumns = @JoinColumn(name = "fk_bundle_group"), inverseJoinColumns = @JoinColumn(name = "fk_bundle"))
@OrderColumn(name = "position", nullable = false)
private Set<Bundle> bundles = new LinkedHashSet<>();
我无法让它工作。当读取或写入实体时,Hibernate完全忽略了position属性。一旦将其替换为List
,它就可以正常工作。
Hibernate是否支持@OrderColumn
和Set
?
注意:我尝试使用SortedSet
代替Set
,但这需要@Sort
(已弃用)或@OrderBy
(无法与@OrderColumn
一起使用),这在我的情况下无法使用。