1. 说明
1)对于本来就有序的集合不能再排序,如List
2)存在内存排序和数据库排序两种方式,
推荐使用数据库排序,效率更高
2. 数据库排序
1)pojo中写法
private Set<String> addressSet = new TreeSet<String>()
不能使用HashSet,必须使用能够排序的Set,如TreeSet或LinkedListSet
2)映射文件
<set name="addressSet" table="user_address_set" order-by="address DESC" >
<key column="userId"/>
<element type="string" column="address"/>
</set>
order-by标签中实际上就是sql中order by 语句后的内容
3. 内存排序
1)映射文件
<set name="addressSet" table="user_address_set" sort="natural">
<key column="userId"/>
<element type="string" column="address"/>
</set>
2) sort标签表示在内存中排完序再存储到数据库中
3) sort可以取的值为: unsorted——不排序
natural——使用默认的自然排序
类名——比较器的类名,根据比较器来排序