Я уже настроил Wildfly 10, Hibernate Spatial 5.0.1 и PostGis. Я могу успешно вставить данные в базу данных (проверено через командную строку psql), но когда я пытаюсь прочитать из базы данных, я получаю следующую ошибку:
Caused by: java.lang.IllegalStateException: Received object of type byte[]
Вот моя сущность:
import com.vividsolutions.jts.geom.Point;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Location {
/*Empty constructor used on Hibernate*/
public Location() {
}
public Location(String name, Point point) {
this.name = name;
this.location = point;
}
@Id
private String name;
@Column(nullable = false)
private Point location;
}
и мой метод:
public Location findByName(final String name) {
Query query = entityManager.createQuery("select l from Location l where l.name=:name", Location.class);
query.setParameter("name", name);
List<Location> result = query.getResultList();
if (result != null && result.size() > 0)
return result.get(0);
return null;
}
Вспоминая, я могу корректно вставить в него данные, но не могу прочитать. Сначала я подумал о некотором несоответствии в нотациях Hibernate Spatial, какой-то нарушенной зависимости от pom.xml
или о чем-то неправильном в persistence.xml
, но поскольку я могу писать, я не думаю, что это так. Здесь в методе find
он запрашивает точно так же, как и я. Что я делаю неправильно?