1

我有两个集合,默认情况下由休眠设置为 PersistentSet。问题是在引擎盖下休眠将它们转换为 HashSet,但我希望将它们设置为 LinkedHashSet,因为我想保留添加元素的顺序。

@ElementCollection(fetch = FetchType.LAZY)
private Set<String> responsibilities;

@ElementCollection(fetch = FetchType.LAZY)
private Set<String> requirements;

我尝试了几件事,但没有成功

public void setResponsibilities(LinkedHashSet<String> responsibilities) {
    this.responsibilities = responsibilities;
}

public void setRequirements(LinkedHashSet<String> requirements) {
    this.requirements = requirements;
}

我尝试的另一件事是:

@ElementCollection(fetch = FetchType.LAZY)
private Set<String> requirements = new LinkedHashSet<>();
4

1 回答 1

0

请看这里https://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html_single/#collections-sorted 似乎这可以使用 SortedSet 来完成,或者只是尝试使用以下解决方案:

@OrderBy("created DESC")
private Set<MyEntity> entities;
于 2020-02-21T13:56:26.123 回答