2015-07-16 5 views
0

Я сопоставляюсь поле 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

I'm done. Спасибо всем. Проблема устраняется:

if (dateFrom != null) { 
      Instant instant = dateFrom.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant(); 
      Date dateFromParam = Date.from(instant); 

      q.setParameter("dateFrom", dateFromParam); 
     } 
0

С одной стороны у вас есть Timestamp, с другой - LocalDate. Это, вероятно, работает, если у вас одинаковый тип с обеих сторон.

+0

Когда я устанавливаю ошибку TimeStamp в LocalDate, '' [Assertion failed] - этот аргумент не требуется; он не должен быть пустым – Sher

+0

Где вы получаете первое, и где вы получаете вторую ошибку? Второй звучит как совершенно другой вопрос. –

Смежные вопросы