我按如下方式映射了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
格式还是其他内容?感谢
答案 0 :(得分:0)
一方面是Timestamp
,另一方面是LocalDate
。如果双方都有相同的类型,它可能会有效。
答案 1 :(得分:0)
我完成了。感谢大家。问题由以下方法解决:
if (dateFrom != null) {
Instant instant = dateFrom.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date dateFromParam = Date.from(instant);
q.setParameter("dateFrom", dateFromParam);
}