JPA @запрос не работает, если значение даты равно нулю во время вставки

#oracle #hibernate #jpa #spring-data-jpa #spring-data

Вопрос:

Я написал ниже java-код в своем репозитории JPA.

 @Query("insert into table (date_colum) value(:dateValue)",nativeQuery= true)
public int insertData(@Param("dateValue") dateValue);
 

Приведенный выше код идеально работает, когда столбец dateValue имеет некоторое значение. Но когда значение dateValue cloumn равно нулю, в этом случае это приведет к следующей ошибке .

 Error : ora-00932 inconsistent datatypes expected date got binary
 

Любое решение , пожалуйста, помогите, я ценю.

Заранее спасибо

Комментарии:

1. вы уверены, что это а date . ошибка совершенно очевидна, значение :dateValue не является датой.

2. Нет , я уверен , что это только дата, это работает идеально, когда передается значение даты, но не работает в случае нулевого значения

3. Какой фактический тип вы используете для даты?

4. Дата, которую я использую

Ответ №1:

Если мы добавим @Temporal к вашему параметру даты, Spring Data знает, как представить этот параметр в спящий режим, даже если он равен нулю:

Код выглядит так, как показано ниже.

 @Query("insert into table (date_colum) value(:dateValue)",nativeQuery= true)
public int insertData(@Param("dateValue") @Temporal java.util.Date dateValue);