java - 带有集合参数的 Spring-Data @Query

标签 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 的自定义存储库实现,具有以下代表性查询

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

看起来 @Query 与基元一起工作得很好,找不到可以帮助我实现上述情况的示例。

这里有几个问题 1. 有可能吗 2. 如果可能,请求一些引用。

PS:现在不能做QueryDSL。

最佳答案

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

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

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

关于java - 带有集合参数的 Spring-Data @Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40458548/

相关文章:

java - 为什么在 Hibernate 5 中不推荐使用条件查询?

java - Libgdx 补间无法在 Android 上运行

java - 如何在没有连续分隔符空格的情况下拆分字符串

spring - Spring配置类中是否可以进行构造函数注入(inject)?

java - 有什么方法可以在 JPA 或 Spring-data 中设置默认外键吗?

java - spring-data mongo 中不区分大小写的精确匹配

java - 将 Enum.class 作为参数传递?

java - Spring - 使用 new 是一种不好的做法吗?

java - Controller 中未检测到 freemarker 形式的 Spring 绑定(bind)

java - 如何将 JDBI 添加到 Spring Boot 应用程序中?