MyEclipse + Hibernate不按ID排序属性集?

时间:2009-04-30 21:41:00

标签: java hibernate myeclipse

我在Java中使用Hibernate。

我有两个与外键关联的表。

Table: country
Fields: ID, Name
POJO class name : Country
POJO class properties: id, name, cities

Table: city
Fields: ID, Name, CountryID
POJO class name : Country

然后我使用MyEclipse的“hibernate逆向工程”。它会自动创建DAO,摘要和pojo类。

一切都很好。当我请求一个Country对象时,Hibernate会检索它并使用CountryID为country.id的城市填充属性“cities”。

还是一切都很好但是当我列出“cities”属性(java Set type)时,打印出我得到这个无序列表的所有城市的ID:

ID: 5
ID: 1
ID: 4
ID: 2

当我从CountryDAO类中获取Country实例时,我应该在哪里编辑以按ID排序城市?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用Hibernate的Criteria API来提供这样的约束。下面的部分将按照ID升序订购帖子。

List posts = session.createCriteria(Post.class)
    .addOrder( Order.asc("id") )
    .list();

答案 1 :(得分:1)

您使用的是XML映射还是注释?

通常,在映射集合上有一个“order-by”属性,允许您指定一个列来按顺序排序集合,以及asc或desc排序。

参见本页:

http://docs.jboss.org/hibernate/stable/core/reference/en/html/collections-mapping.html

搜索“order-by” - 您需要为您的示例找到合适的集合映射。