【问题标题】:MyEclipse+Hibernate does not order property sets by ID?MyEclipse+Hibernate 不按 ID 排序属性集?
【发布时间】:2009-04-30 21:40:59
【问题描述】:

我在 Java 中使用 Hibernate。

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

表:国家 字段:ID、名称 POJO 类名:国家 POJO 类属性:id、name、city 表:城市 字段:ID、名称、CountryID POJO 类名:国家

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

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

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

编号:5 编号:1 编号:4 编号:2

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

【问题讨论】:

    标签: java hibernate myeclipse


    【解决方案1】:

    您可以尝试使用 Hibernate 的 Criteria API 来提供这样的约束。以下文章将按 id 升序对帖子进行排序。

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

    【讨论】:

    • 好久没用Hibernate了,如有语法错误请忽略。
    【解决方案2】:

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

    通常,在映射集合上有一个“order-by”属性,可让您指定一个列来对集合进行排序,以及 asc 或 desc 排序。

    查看此页面:

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

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

    【讨论】:

    • 安迪,感谢您的考虑;但是我仍然对此感到异常。请您检查一下它有什么问题吗? pastebin.ca/1410416
    猜你喜欢
    • 2012-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多