gpt4 book ai didi

java - 参数值 [2018-04-08T11 :02:44] did not match expected type [java. util.Date (n/a)]

转载 作者:行者123 更新时间:2023-11-30 07:44:22 25 4
gpt4 key购买 nike

我想将这个 XML 发送到 rest api 服务器:

XML 请求:

<reconcile>
<start_date>2018-04-08T11:02:44</start_date>
<end_date>2018-04-08T11:02:44</end_date>
<page>1</page>
</reconcile>

JAXB 代码:

@XmlRootElement(name = "reconcile")
@XmlAccessorType(XmlAccessType.FIELD)
public class Reconcile {

@XmlElement(name = "start_date")
@XmlJavaTypeAdapter(LocalDateTimeXmlAdapter.class)
public LocalDateTime start_date;
@XmlElement(name = "end_date")
@XmlJavaTypeAdapter(LocalDateTimeXmlAdapter.class)
public LocalDateTime end_date;
@XmlElement(name = "page")
public String page;

SQL查询:

public List<PaymentTransactions> transactionsByDate(LocalDateTime start_date, LocalDateTime end_date) throws Exception {

String hql = "select e from " + PaymentTransactions.class.getName() + " e where e.created_at >= ? and e.created_at <= ?";
Query query = entityManager.createQuery(hql).setParameter(0, start_date).setParameter(1, end_date));
List<PaymentTransactions> paymentTransactions = (List<PaymentTransactions>) query.getResultList();
return paymentTransactions;
}

但是当我提出请求时,我得到:

java.lang.IllegalArgumentException: Parameter value [2018-04-08T11:02:44] did not match expected type [java.util.Date (n/a)]

在将日期值作为参数发送给 SQL 查询之前,是否需要转换日期值?或者我需要使用其他类型的日期?

最佳答案

您正在设置 start_date,这是一个 LocalDateTime,作为 SQL 的参数;错误消息告诉您它需要 java.util.Date,但它不理解 LocalDateTime 对象。您需要对其进行转换:

Date startDate = Date.from(start_date.atZone(ZoneId.systemDefault()).toInstant());
Date endDate = Date.from(end_date.atZone(ZoneId.systemDefault()).toInstant());

Query query = entityManager.createQuery(hql)
.setParameter(0, startDate).setParameter(1, endDate));

(假设您正在使用 java.time.LocalDateTime 并且您希望使用系统的默认时区)。

这是必要的,因为不幸的是 JPA/Hibernate 还没有(还)自动理解相对较新的 java.time 类(它要求您使用旧的 java.util.Date类)。

关于java - 参数值 [2018-04-08T11 :02:44] did not match expected type [java. util.Date (n/a)],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52662709/

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