java - Spring JPA 存储库方法查询之间的名称

标签 java spring spring-data-jpa spring-data jpql

我想获取 updated 日期或 created 日期位于某个日期范围内的记录。 实体类如下:

@Entity
public class Order {

  @Id
  @Setter(AccessLevel.NONE)
  private String orderId;

  @Temporal(TemporalType.TIMESTAMP)
  @Column(name = "created_at", nullable = false)
  private Date created;

  @Temporal(TemporalType.TIMESTAMP)
  @Column(name = "updated_at", nullable = false)
  private Date updated;

}

它的存储库如下:

public interface OrderRepository
    extends PagingAndSortingRepository<Order, String>, QuerydslPredicateExecutor<Order> {
  public Page<Order> findByCreatedBetweenOrUpdatedBetween(Date startDate, Date endDate,
      Pageable pageRequest);
}

问题是当我使用它时,出现以下错误:

Caused by: java.lang.IllegalArgumentException: No parameter available for part updated BETWEEN (2): [IsBetween, Between] NEVER. at org.springframework.util.Assert.isTrue(Assert.java:116) at org.springframework.data.jpa.repository.query.ParameterMetadataProvider.next(ParameterMetadataProvider.java:123) at org.springframework.data.jpa.repository.query.JpaQueryCreator$PredicateBuilder.build(JpaQueryCreator.java:247) at org.springframework.data.jpa.repository.query.JpaQueryCreator.toPredicate(JpaQueryCreator.java:206) at org.springframework.data.jpa.repository.query.JpaQueryCreator.create(JpaQueryCreator.java:119) at org.springframework.data.jpa.repository.query.JpaQueryCreator.create(JpaQueryCreator.java:56)

最佳答案

您需要提供 4 个日期。

前两个用于创建之间,后两个用于更新之间:

public interface OrderRepository
    extends PagingAndSortingRepository<Order, String>, QuerydslPredicateExecutor<Order> {
  public Page<Order> findByCreatedBetweenOrUpdatedBetween(
           Date startDateCreated, Date endDateCreated
         , Date startDateUpdated, Date endDateUpdated
         , Pageable pageRequest);
}

关于java - Spring JPA 存储库方法查询之间的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54216843/

相关文章:

java - spring-boot-2.0.0.RELEASE 中缺少 SpringApplication.run 的特定重载

xml - 带有 XML 的 Spring 3 REST 给出 "406 Not Acceptable"

java - @Query 中是否可以进行灵活的排序?

java - 如何在 Spring Boot 中创建一个通用存储库,它接受一个实体和几个属性,并根据属性返回所有记录?

java - 查询参数值不绑定(bind)到 Spring Pageable

java - 如果我将变量设置为 final,事情会运行得更快吗?

java - 如何对具有对象的 RequestParam 的 Controller 方法进行单元测试?

java - 如何在没有嵌套循环的情况下对数组求和?

java - 大量更新时 Swing 组件闪烁

java - Spring行为中的@async是同步的