Zun*_*med 2 java collections hibernate jpa
我正在使用休眠。
我有一对多的关系。
@OneToMany(mappedBy = "enrollmentSetupCategory", fetch = FetchType.EAGER, cascade = CascadeType.ALL )
private Set<EnrollmentSetupCategoryLevel> enrollmentSetupCategoryLevels;
Run Code Online (Sandbox Code Playgroud)
我的问题是我在这里内部使用了哪种 set 实现?如果我扩展可比较的接口,返回的对象会被排序吗?还是我必须自己排序?
Hibernate 支持排序集合映射,您可以指定您的比较器为您进行排序。
从文档
Hibernate 支持实现 java.util.SortedMap 和 java.util.SortedSet 的集合。您必须在映射文件中指定一个比较器:
Run Code Online (Sandbox Code Playgroud)<set name="aliases" table="person_aliases" sort="natural"> <key column="person"/> <element column="name" type="string"/> </set> <map name="holidays" sort="my.custom.HolidayComparator"> <key column="year_id"/> <map-key column="hol_name" type="string"/> <element column="hol_date" type="date"/> </map>sort 属性的允许值是 unsorted、natural 和实现 java.util.Comparator 的类的名称。
排序的集合实际上表现得像
java.util.TreeSet或java.util.TreeMap。
从文档编辑注释,检查
3.4.6. 集合相关注释
@Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
Run Code Online (Sandbox Code Playgroud)