Java 无法使用hibernate spatial将几何体对象持久化到oracle

Java 无法使用hibernate spatial将几何体对象持久化到oracle,java,hibernate,spring-data-jpa,oracle10g,hibernate-spatial,Java,Hibernate,Spring Data Jpa,Oracle10g,Hibernate Spatial,我正在将Spring与Hibernate Spatial5.0.12一起使用,并尝试将com.livesolutions.jts.geom.Geometry对象持久化到Oracle数据库的SDO_Geometry列中,但在尝试将其保存到数据库时出现此异常: ORA-00932: Inconsistent datatypes: expected MDSYS.SDO_GEOMETRY got BINARY 我在其他任何地方都没有发现这个问题,也不知道如何解决它,因为我刚刚开始休眠 这是我试图保存的

我正在将SpringHibernate Spatial5.0.12一起使用,并尝试将
com.livesolutions.jts.geom.Geometry
对象持久化到Oracle数据库的
SDO_Geometry
列中,但在尝试将其保存到数据库时出现此异常:

ORA-00932: Inconsistent datatypes: expected MDSYS.SDO_GEOMETRY got BINARY
我在其他任何地方都没有发现这个问题,也不知道如何解决它,因为我刚刚开始休眠

这是我试图保存的实体:

@Entity
@Table(name = "DETECTED_OBJECTS")
public class DetectedObject {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "DETECTED_SEQ")
    @SequenceGenerator(sequenceName = "detected_seq", allocationSize = 1, name = "DETECTED_SEQ"_
    private Long id;
    private Geometry polygon;

    public DetectedObject(){}

    public DetectedObject(Coordinate[] coordinates){
    this.polygon = new GeometryFactory().createPolygon(coordinates);
    }
}
这是我的hibernate配置:

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect
spring.jpa.properties.provider_class = org.hibernate.cache.NoCacheProvider
spring.jpa.hibernate.ddl-auto = update
spring.jpa.properties.hibernate.format-sql = true
以及引发异常的实际行:

detectedObjectRepository.save(detectedObject)

解决方案是通过更改以下行明确告诉spring我正在使用hibernate的空间方言:

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect
为此:

spring.jpa.properties.hibernate.dialect = org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect

解决方案是通过更改以下行明确告诉spring我正在使用hibernate的空间方言:

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect
为此:

spring.jpa.properties.hibernate.dialect = org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect

请在
应用程序属性中添加以下配置:

spring.jpa.properties.hibernate.dialect = org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect

spring.datasource.type=oracle.jdbc.pool.OracleDataSource
如果这不起作用,请在模型中使用
geolatte
库和以下属性:

private Point<G2D> point;
private Polygon<G2D> polygon;
专用点;
私有多边形;

请在
应用程序属性中添加以下配置:

spring.jpa.properties.hibernate.dialect = org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect

spring.datasource.type=oracle.jdbc.pool.OracleDataSource
如果这不起作用,请在模型中使用
geolatte
库和以下属性:

private Point<G2D> point;
private Polygon<G2D> polygon;
专用点;
私有多边形;