Как выбрать объект, используя ZonedDateTime из базы данных с отметкой времени с часовым поясом? - PullRequest
0 голосов
/ 01 мая 2020

в приложении при весенней загрузке я сохранил сущность с полем zonedDateTime.

@Entity
class User{
    public String name;
    public ZonedDateTime registred;
}

и использовал пружинный репозиторий для сохранения. Я использовал oracle базу данных и в таблице пользователей - есть 3 столбца - идентификатор, имя, зарегистрированный (отметка времени с часовым поясом)

Я хочу прочитать это значение по дате регистрации

ZonedDateTime date = ZonedDateTime.parse("2020-04-20'T'15:15:00.000Z");
repository.findByDate(date);

но findByDate выдает исключение

Мой репозиторий

@Repository
public interface RiskServiceEventRepository extends CrudRepository<RiskServiceEventRecord, String> {
    @Query(value = "SELECT * FROM SBDATASVCS.RISKSERVICEEVENTRECORD WHERE type=?1 AND save_date_time BETWEEN ?2 AND ?3", nativeQuery = true)
    List<RiskServiceEventRecord> findByRiskServiceTypeBetweenEventDateTime(String riskServiceType, ZonedDateTime start, ZonedDateTime end);
}

сообщение об ошибке

"не удалось подготовить оператор; SQL [SELECT * FROM пользователя WHERE type =? AND save_date_time =?]; вложенным исключением является org.hibernate.exception.SQLGrammarException: не удалось подготовить оператор}

...