我有一个查询,可在2个日期之前对实体进行排序:
@Query(value = "from Order order by CASE WHEN created > updated THEN created ELSE updated END desc")
我可以对@OrderBy注释中的@OneToMany进行同样的操作吗?
@OneToMany(cascade = CascadeType.ALL ,mappedBy = "order", fetch = FetchType.EAGER)
@OrderBy(...)
private List<Dish> dishes = new ArrayList<>();
与接受所有订单然后遍历所有订单并通过查询为每个菜肴查找菜相比,这还可能花费更少的时间和性能吗?
答案 0 :(得分:0)
Hibernate支持@OrderBy批注,您可以将其添加到关系属性,如以下代码段所示。
@OrderBy(value = "CASE DESC")
答案 1 :(得分:0)
尝试使用org.hibernate.annotations.OrderBy
代替javax.persistence.OrderBy
org.hibernate.annotations.OrderBy
的JavaDoc声明:
使用SQL排序(而非HQL排序)对集合进行排序。
与javax.persistence.OrderBy的不同之处在于这需要SQL 片段,JPA OrderBy需要一个有效的JPQL排序片段。
这意味着: