下面是我的存储库方法

List<Shipment> findByProductCategoriesBetweenQuarter( Set<Category> categories, Quarter from, Quarter to)

其中Category是一个实体,Quarter是@Embeddable,如下所示
class Quarter {
 int year;
 Quarters q; //Enum
}

我想使用@Query与以下代表性查询创建自定义存储库impl
@Query("select s from Shipment s where Category in (categories) and Quarter between (from, to)")

看来@Query与原语可以很好地工作,找不到可以帮助我实现上述情况的示例。

所以这里有几个问题
1.有可能吗
2.如果可能,请提供参考。

PS:现在不能执行QueryDSL。

最佳答案

JPA将Enum ordinal作为int存储在数据库表中。

因此,您可以执行以下操作。

@Query("select s from Shipment s where Category in (categories) and Quarter between (from.ordinal(), to.ordinal())")

10-02 09:27