Я пытаюсь написать запрос mysql в Spring JPA, чтобы найти местоположения в заданном диапазоне. (Я использую Spring Boot + Kotlin)
Я пытаюсь выполнить следующий запрос:
@Repository
interface LocationRepository : JpaRepository<LocationEntity, Long> {
@Query("SELECT id, (6371 * acos ( cos ( radians(:lat) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(:lng) ) + sin ( radians(:lat) ) * sin( radians( lat ) ))) AS distance FROM location GROUP BY address HAVING distance < :distance ORDER BY distance ASC", nativeQuery=true)
fun filterByLocation(
@Param("lat") lat: String,
@Param("lng") lng: String,
@Param("distance") distance: Int
): List<LocationEntity>
}
Но я получаю следующую ошибку:
java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'my_app.location.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
My Местоположение объекта является следующим:
@Entity(name = "location")
data class LocationEntity(
var lat: Double,
var lng: Double
) {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long = 0
}