Je travaille sur un projet où je récupèrerai la latitude et la longitude d'un utilisateur. De cela, je voudrais le stocker dans la base de données en tant que point. Cependant, lorsque je tente de le faire, j'ai couru dans l'erreur suivante: o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: Invalid endian flag value encountered.
Mappage à com.vividsolutions.jts.geom.Point drapeau invalide invalide
Je prends le modèle qui est exposé à côté client et la cartographie comme suit:
public static Point createPoint(double longitude, double latitude){
GeometryFactory gf = new GeometryFactory();
Coordinate coord = new Coordinate(longitude, latitude);
Point point = gf.createPoint(coord);
return point;
}
donc je qualifierais ce méthode à peu près comme suit pour mapper la valeur en tant que point:
createPoint(user.getLocation().getLongitude(), user.getLocation().getLatitude());
Ce que je stockerait alors la valeur retournée dans la base de données.
Mon fichier pom a les dépendances suivantes:
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.13</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>5.2.4.Final</version>
<exclusions>
<exclusion>
<artifactId>postgresql</artifactId>
<groupId>postgresql</groupId>
</exclusion>
</exclusions>
</dependency>
configuration JPA:
jpa:
database: POSTGRESQL
open-in-view: false
show-sql: true
hibernate:
ddl-auto: none
dialect: org.hibernate.spatial.dialect.postgis.PostgisDialect
naming:
naming-strategy: org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategy
définition de la colonne:
@Column(name="point")
private com.vividsolutions.jts.geom.Point point;
Toutes les idées sur la façon dont je peux corriger cette erreur? Merci les gars d'avance.
Je ne sais pas si compris votre correctyl, mais pas 'javax.persistence.AttributeConverter' ce que vous êtes à la recherche pour? – Artegon