有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java预期的类型错误。日期格式

我将VALUE_DATE字段映射如下:

@Column(name = "VALUE_DATE")
private Timestamp valueDate;

但当我把它装订起来的时候

private ObjectProperty<LocalDate> dateFrom;
public ObjectProperty<LocalDate> dateFromProperty() {
        if(dateFrom == null){
            dateFrom = new SimpleObjectProperty<>();
        }
        return dateFrom;
    }

有约束力:

dp_date_from.valueProperty().bindBidirectional(model.dateFromProperty());

然后我用这个日期来筛选表

if (dateFrom != null) {
            sb.append("and a.valueDate > :dateFrom ");
        }
if (dateFrom != null) {
            q.setParameter("dateFrom", dateFrom);
        }

我收到一个错误:

Parameter value [2014-07-09] did not match expected type [java.util.Date (n/a)]; nested exception is java.lang.IllegalArgumentException: Parameter value [2014-07-09] did not match expected type [java.util.Date (n/a)]

我应该改变VALUE_DATE格式还是其他什么?谢谢


共 (2) 个答案

  1. # 1 楼答案

    我完了。谢谢大家。问题通过以下方式解决:

    if (dateFrom != null) {
                Instant instant = dateFrom.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
                Date dateFromParam = Date.from(instant);
    
                q.setParameter("dateFrom", dateFromParam);
            }
    
  2. # 2 楼答案

    一边是Timestamp,另一边是LocalDate。如果两边都是同一种类型,它可能会起作用