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
上传中...
上传图片
插入图片