Как правильно передать в CrudRepository в параметре @Param Дату (Spring BOOT)

Подскажите пожалуйста, как правильно передать дату в метод репозитория через @Param. Если я просто прописываю AND date > '2022-01-01' - то запрос нормально обрабатывается, но как только я хочу передать дату с Сервиса при помощи @Param("startDate") Date startDate я получаю ошибку.

Репозиторий : FinanceRepository extends CrudRepository

@Query("FROM Finance WHERE wallet.id =:walletId " +
            "AND date > ':startDate'")
    List<Finance> findFinanceByWalletDate(@Param("walletId") long walletId,
                                                 @Param("startDate") Date startDate); 

Сервис :

public List<Finance> firstQuarter(Wallet wallet) {
        String str = "2022-03-01";
        java.sql.Date sqlDate = Date.valueOf(str);
        return financeRepository.findFinanceByWalletDate(wallet.getId(),sqlDate);
    }

Ошибка :

There was an unexpected error (type=Internal Server Error, status=500).
could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet
org.springframework.orm.jpa.JpaSystemException: could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:331)

Ответы (2 шт):

Автор решения: AndrewThomas

Вам не нужно использовать кавычки в имени параметра при написании запроса в @Query при использовании поименованного параметра с @Param, поэтому вот так должно сработать:

@Query("FROM Finance WHERE wallet.id = :walletId AND date > :startDate")
List<Finance> findFinanceByWalletDate(@Param("walletId") long walletId,
                                      @Param("startDate") Date startDate); 

Всю необходимую информацию о правилах использования @Param с @Query можно найти с примерами в официальной документации spring-data-jpa по этой теме.

→ Ссылка
Автор решения: Ihor
@Query("FROM Finance WHERE wallet.id =:walletId " +
        "AND date > :startDate")
List<Finance> findFinanceTEST(@Param("walletId") long walletId,
                                      @Param("startDate") LocalDateTime startDate);

Действительно проблема была в лишних кавычках, так же использовал LocalDateTime и все заработало. Спасибо за помощь :)

→ Ссылка