【问题标题】:How can I use Hibernate to alphabetically order this list retrieved?如何使用 Hibernate 按字母顺序检索此列表?
【发布时间】:2015-11-22 02:27:12
【问题描述】:

我是 Hibernate 的新手,我有以下疑问。

在一个类中,我有这个字段来检索 Twp1007Progetto 对象的列表:

@OneToMany(fetch=FetchType.EAGER)
@JoinColumns({
    @JoinColumn(name="COD_MEC_ATT", referencedColumnName="COD_SCU_UT"),
    @JoinColumn(name="DAT_ANN_SCO_ATT", referencedColumnName="DAT_ANN_SCO_RIL")
    })
private List<Twp1007Progetto> twp1007Progettos;

这很好用,但现在我必须添加一个订单行为。

所以 Twp1007Progetto 对象有这个字符串字段:

@Column(name="FLG_TIP_PRG")
private String flgTipPrg;

只能有以下值(这些值在 DB 中定义):WLC LS)。

所以现在我想使用 Hibernet 根据 flgTipPrg 值对之前的 twp1007Progettos 列表进行排序。

例如,如果列表包含两个 W 元素、三个 C 元素和一个 S 元素,则检索到的列表必须类似于:[C, C, S, W](按字母顺序排列)。

我怎样才能使用 Hibernate 做这样的事情?

【问题讨论】:

    标签: java hibernate jakarta-ee annotations hibernate-mapping


    【解决方案1】:

    您是否使用休眠条件或 HQL 查询来获取结果?

    当使用标准时,你可以使用

    .addOrder( Order.asc("name") )
    .addOrder( Order.desc("age") )
    

    参考链接 How do I sort list with criteria in hibernate

    如果您使用的是 HQL 查询,则可以直接在该查询中使用 order by。

    如果获取到列表,可以使用Java集合包进行排序(比较器接口会有所帮助)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多