Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Fehler:1064, SQLState:42000 in @Query - JPA, MySQL, Hibernate

Sie können toLocalDate() nicht verwenden direkt in JPQL. Eine einfachere Möglichkeit, dies zu beheben, berechnet Tagesbeginn und Tagesende von localdate und tun Sie zwischen Abfragen mit ihnen.

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

und Abfrage wie 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);