Mysql
 sql >> Database >  >> RDS >> Mysql

Errore SQL:1064, SQLState:42000 in @Query - JPA, MySQL, Ibernazione

Non puoi usare toLocalDate() direttamente in JPQL. Un modo più semplice per risolvere questo problema calcola l'inizio del giorno e la fine del giorno di localdate e fai tra una query che li utilizza.

LocalDateTime startOfDay = localDate.atTime(LocalTime.MIN);
LocalDateTime endOfDay = localDate.atTime(LocalTime.MAX);

e query come 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);