欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Hibernate Set排序

程序员文章站 2022-03-01 18:03:44
...

大家都知道one-to-many的排序可以通过配置一个order-by="** desc"即可实现

如代码

<set name="clubMessage" table="club_Message" inverse="true"cascade="delete" order-by="create_time desc"> 
    <key column="club_id" /> 
    <one-to-many class="com.test.item.club.domain.ClubMessageVO" /> 
</set>


上面的hbm属性意义是:一个社区对应多条社区消息、同时将这些消息按create_time排序

Java代码

import java.util.Comparator; 
   
import my.User; 
   
public class GBComparator implements Comparator{ 
   
    public int compare(Object o1, Object o2){ 
        if(o1 == null){ 
            return o2 == null ? 0 : 1; 
        } 
        if(o2 == null){ 
            return -1; 
        } 
            
        if(o1 instanceof User && o2 instanceof User){ 
            return ((User)o1).getAccount().compareTo(((User)o2).getAccount()); 
        } 
            
        return 0; 
    } 
} 


Xml代码

<set 
    name="users" 
    table="USER_GROUP_REL" 
    cascade="none" 
    inverse="true" 
    sort="my.GBComparator"> 
    <key column="GROUPING_ID" /> 
    <many-to-many column="USER_ID" class="User" /> 
</set>