Spring-Data @Query with Collection params

时间:2016-11-07 05:45:10

标签: java spring spring-data spring-data-jpa

以下是我的存储库方法

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。

1 个答案:

答案 0 :(得分:3)

JPA会将Enum序号int存储在数据库表中。

所以你可以做到以下几点。

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