나는 봄 부팅 1.5.2 사용하고 유효하지 않은 MySQL의 쿼리 (ONLY_FULL_GROUP_BY) 다음과 같은 @query를 생성봄 부팅
@Query(value = "SELECT m FROM Message m WHERE m.from.userId = :myId OR m.to.userId = :myId GROUP BY m.from.userId, m.to.userId ORDER BY m.date DESC")
List<Message> chatOverview(@Param("myId") final Long myUserId);
쿼리의 의도는 당신이 볼 채팅 메신저 개요를 작성하는 것입니다
네가 가진 각 대화의 마지막 메시지. 그것은 dev에 나를 위해 잘 작동하지만 생산 (새로운 MySQL 데이터베이스 버전)에서이 오류가 얻을 : 그러나 나는 방법을 찾을 수 없습니다, 나는이 변화의 이유가 무엇인지이 thread 읽을
java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'message0_.message_id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
을 이것을 JPA/Spring으로 해결할 수 있습니다. 프로덕션 MySQL 데이터베이스의 설정을 변경할 수 없으며 Spring에서 업그레이드하지 않으려합니다. 내 검색어를 어떻게 수정합니까?
"Spring Boot"가 해당 쿼리를 작성하지 않았 으면 JPA 제공자가 (어느 것을 사용합니까?). 그리고 당신은 – DN1
인 ACTUAL SQL을 게시하지 않았습니다. 그러나 Spring Boot는 JPA 공급자 -> Hibernate를 정의합니다. 실제 SQL의 경우 디버깅 로깅과 함께 기록 될 것입니다. 그러나 실제로 SQL을 수정할 수는 없으므로 도움이 될 것 같지 않습니다. – schneida
Spring에 JPA 제공자를 정의하십시오. 그리고 나서 실제 SQL을 사용하여 선택한 JPA 공급자의 BUG를보고합니다.이 데이터베이스에서이 JPQL을 실행하고이 SQL을 유효하지 않다고 말했습니다. – DN1