Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro SQL:1064, SQLState:42000 em @Query - JPA, MySQL, Hibernate


Você não pode usar toLocalDate() diretamente no JPQL. Uma maneira mais fácil de corrigir esse cálculo de início e fim de dia de localdate e fazer entre consulta usando-os.
LocalDateTime startOfDay = localDate.atTime(LocalTime.MIN);
LocalDateTime endOfDay = localDate.atTime(LocalTime.MAX);

e consulta como c.start between BETWEEN :startOfDay AND :endOfDay
@Query("SELECT new com.proctorio.webtracker.entity.WebsiteDailyTotal(c.domain, SUM(c.duration)) " 
       +"FROM SuperStatEntityTime AS c WHERE c.start between BETWEEN :startOfDay AND :endOfDay GROUP BY c.domain ORDER BY c.domain ASC")
public List<WebsiteDailyTotal> countTotalDomainUsageByDay2(@Param("startOfDay") LocalDateTime startOfDay,
                                                           @Param("endOfDay") LocalDateTime endOfDay);