2 sias1991 sias1991 于 2015.06.26 11:54 提问

hibernate集合排序问题。
 @Entity
@Table(name="t_Group")
public class Group {
    private int id;
    private String name;
    private List<Users>list=new ArrayList<Users>();
    @Id
    @GeneratedValue
    public int getId() {
        return id;
    }

    @OneToMany(mappedBy="group",
     cascade={CascadeType.ALL}

    )
    @OrderBy("name ASC")//这里的orderby没什么用啊。根本不排序啊。
    public List<Users> getList() {
        return list;
    }

}
@Entity
public class Users {
    private int id;
    private String name;


    private Group group;



    @Id
    @GeneratedValue
    public int getId() {
        return id;
    }

    @ManyToOne(cascade={CascadeType.ALL}
    )
    public Group getGroup() {
        return group;
    }


}

 @Test
    public void save(){ 
        Users users1=new Users();
        users1.setName("a");

        Users users2=new Users();
        users2.setName("c");

        Users users3=new Users();
        users3.setName("b");

        Users users4=new Users();
        users4.setName("d");

     Group g=new Group();
     users1.setGroup(g);
     users2.setGroup(g);
     users3.setGroup(g);
     users4.setGroup(g);
     g.setName("A");
     g.getList().add(users1);
     g.getList().add(users2);
     g.getList().add(users3);
     g.getList().add(users4);

     for(Users u:g.getList()){
       System.out.println(u.getName());

       //控制台输出  a,c,b,d根本没排序啊。
     }
        Configuration con= new AnnotationConfiguration();
        SessionFactory sf=con.configure().buildSessionFactory();
        Session session=sf.getCurrentSession();
        session.beginTransaction();

   session.save(g);

        session.getTransaction().commit(); 
        sf.close();

    }

哪里写错了。

1个回答

caozhy
caozhy   Ds   Rxr 2015.06.26 23:06

http://my.oschina.net/u/855386/blog/351993
把list修改为set看看

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Hibernate-多关系时对应的多个关联对象Set集合进行排序
直接通过对多关系get()/load()时,可以通过设置配置文件进行排序(表中的列名)//对set集合进行排序,asc升序,desc降序 <set name="emps" cascade="all" inverse="false" order-by="DEPTNO desc">如果是查询,可以直接在HQL语句结尾加order by类的属性名Hql=”from Emp order by eno asc
hibernate中给集合排序的方法
这里我们用set作示例,不讨论map,bag等结构有执行排序的位置,可以分为内存排序和数据库排序,1.内存排序,通过提供一个实现了Comparator接口的排序器来实现配置文件:                            class="com.company.project.domain.system.Menu" />java文件:/** * 用来给菜单排序 *  * @autho
hibernate用关联映射时,Set集合如何按指定属性排序
一.问题场景:场景:我有一套试卷试卷(examination表中)里有好多题目(question表中),题目有A,B,C,D 选项。建立类 Examination类中有 @OneToMany(targetEntity = Question.class, cascade = CascadeType.REMOVE, mappedBy = "examination", fetch = FetchTyp
Hibernate多对多映射关系中自定义排序
SSH联合开发过程中发现当多对多的关系存在时,比如role和function,多对多的关系,我想通过role获得这个role的所有的function并且按照自己想要的方式进行排序,但是发现配置的时候没找到合适的方式。只好自己重写了Comparable的compareTo方法,并且将封装好的数据转为treeSet对象传递到前台实现数据的有序化。     Function对应的bean类:publi
Hibernate 注解:一、多对多中set集合按指定字段排序
最简单的方法是在配置文件中设置,利用配置文件中的order-by 属性来处理 上面在一的一端查询出来的set 里面的记录根据 detetime 的升序来排列,注意:是datetime 不是rdatetime 对于注解形式,可以采用 import javax.pers
Hibernate集合排序
1. 说明
Hibernate 集合排序
CRM中Customer遇到的Set属性排序问题 分类: Hibernate2008-07-04 10:32 513人阅读 评论(0) 收藏 举报 crmhibernate数据库annotationsclassmenu 今天在CRM中Customer遇到的Set属性排序问题,后来翻了下孙卫琴的《精通Hibernate》 Hibernate中的集合 Hibernate中的集
Hibernate(五)映射集合属性及排序
这里先将集合Set在数据库中的存储。就是新建一个表,新建的表的主键对应另一张的外键,而集合的每个值对应一条记录,以同一个set的数据以主键值相同的记录区分。 package test.hibernate.set; import java.util.Set; public class User { private Integer id; private String name; pri
Java集合排序及java集合类详解
Java集合排序及java集合类详解 Java集合排序及java集合类详解
java HashSet 集合排序
java HashSet 集合排序,需要通过利用TreeSet集合排序。2013-10-30。