问题描述
- 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(); }
哪里写错了。
解决方案
http://my.oschina.net/u/855386/blog/351993
把list修改为set看看
时间: 2024-11-18 10:51:36