JPA按子集合中最后一个元素的属性进行查询 [英] JPA sorting query by property of last element in child collection

查看:181
本文介绍了JPA按子集合中最后一个元素的属性进行查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

说我有以下实体

class Order {

    @Id
    private long id;

    private long orderNo;

    @OneToMany
    @JoinColumn(name="order_id")
    @OrderBy("timeStamp ASC")
    private List<Item> items;
}

class Item {
    @Id
    private long id;

    // e.g. COMPLETED, IN PROGRESS, QUEUED, etc...
    private String status;

    private long timeStamp;

    @ManyToOne
    private Order order;
}

使用JPA,我想返回一个订单列表,该列表按项目列表中最后一个项目的状态进行排序,这是最新的,因为项目是按timeStamp排序的.该怎么办?

Using JPA I want to return a list of Orders that are sorted by the status from the last Item in the items list, which is the most recent one since items is order by timeStamp. How can this be done?

推荐答案

类似,

Select o from Order o join o.items i where i.id = (Select max(timestamp) from Item i2 where i = i2) order by i.status

这篇关于JPA按子集合中最后一个元素的属性进行查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆