gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 02:35:39 24 4
gpt4 key购买 nike

我想获取 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com