В моем текущем проекте я использую hibernate JPA как библиотеку персистентности. И я получаю странную ошибку при настройке параметров для запроса.Ошибка типа параметра JPQL
У меня есть следующие:
List<Location> loca = JPA.em().createQuery(
"SELECT location FROM Location as location"
+ " where "
+ "(6371 * acos(cos(PI()/180 * :platitude) * cos(PI()/180 *location.latitude ) * "
+ "cos(PI()/180 *location.longitude - PI()/180 *:plongitude) + sin(PI()/180 *:platitude) * "
+ "sin(PI()/180 *location.latitude))) < :radius")
.setParameter("radius", 10000.0)
.setParameter("platitude", new Double(latitude))
.setParameter("plongitude", new Double(longitude))
.getResultList();
Ошибка результат:
[IllegalArgumentException: Значение параметра [43,239474] не соответствие типа [java.lang.Integer]]
Но это значение не может быть отлито для целого из-за потери точности.
Любые предложения?
В чем вы работаете? Является ли тип поля в базе данных десятичным? Является ли атрибутом сущности двойным? – rbento
Я использую postgresql, да атрибут сущности двойной, а поле базы данных - «двойная точность». –
Вы пытались заменить 180 на 180.0? –