Почему у меня есть org.postgresql.util.PSQLException: ОШИБКА: обнаружено недопустимое значение флага порядка байтов? - PullRequest
0 голосов
/ 03 октября 2019

Я недавно работал с hibernate-space 5 и столкнулся с проблемой. Когда я пытаюсь добавить свои данные геометрии в Postgres. У меня следующая ошибка на этапе фиксации транзакции:

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute statement] with root cause
org.postgresql.util.PSQLException: ERROR: Invalid endian flag value encountered.

Моя сущность выглядит следующим образом, я настроил ее, как и в предыдущих сообщениях с такой же проблемой:

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "geotable")
@Indexed(index = "geoindex")
public class GeoPointModel implements Serializable {

    @Id
    @GeneratedValue
    @DocumentId
    @Column(name = "point_id")
    private Long id;
    @Field(index = Index.YES, analyze = Analyze.NO, store = Store.YES)
    @FieldBridge(impl = GeoBridge.class)
    @Column(name = "location", columnDefinition = "geometry(Point,4326)")
    private Geometry location;
}

Мои зависимости:

dependencies {
    implementation 'org.hibernate:hibernate-core:5.4.5.Final'
    implementation 'org.hibernate:hibernate-spatial:5.4.5.Final'
    implementation 'org.springframework:spring-orm:5.1.5.RELEASE'

    compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version: '2.1.8.RELEASE'
    compile group: 'org.hibernate', name: 'hibernate-search-orm', version: '5.11.3.Final'
    compile group: 'org.apache.lucene', name: 'lucene-spatial', version: '5.5.5'
    compile group: 'com.spatial4j', name: 'spatial4j', version: '0.4.1'
    compile group: 'com.vividsolutions', name: 'jts', version: '1.13'
    compile group: 'net.postgis', name: 'postgis-jdbc', version: '2.3.0'
}

Диалект:

dialect=org.hibernate.spatial.dialect.postgis.PostgisPG9Dialect

Что я потерял? Как это можно исправить?

1 Ответ

1 голос
/ 04 октября 2019

Возможно https://hibernate.atlassian.net/browse/HHH-11086? Обходное решение, кажется, использует Point вместо Geometry: https://forum.hibernate.org/viewtopic.php?p=2490324&sid=36d7ee961e6ff5e45e71a8aa613cb469#p2490324

В заметке, не связанной с этим, если вы все еще пытаетесь использовать Hibernate Search (вы все-таки отметили его в этом вопросе), посмотрите на @Spatial: https://docs.jboss.org/hibernate/search/5.11/reference/en-US/html_single/#spatial-indexing. В вашем случае вам всего лишь нужно, чтобы ваш GeoPointModel класс реализовал org.hibernate.search.spatial.Coordinates и добавить аннотацию @Spatial(name = "location") к GeoPointModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...