java - 组织.hibernate.MappingException : No Dialect mapping for JDBC type: 2002

标签 java oracle hibernate spatial

当我尝试执行 JPA nativeQuery 以获取几何字段类型时,出现 org.hibernate.MappingException: No Dialect mapping for JDBC type: 2002

我正在使用 Oracle 和 org.hibernatespatial.oracle.OracleSpatial10gDialect

几何字段映射为:

@Column(name="geometry")  
@Type(type = "org.hibernatespatial.GeometryUserType")  
private Geometry geometry;

// ...

List<Object> listFeatures = new LinkedList<Object>();

Query query = entityManager.createNativeQuery(
   "SELECT "+ slots +" , geometry FROM  edtem_features feature, edtem_dades dada WHERE" +
   " feature."+ tematic.getIdGeomField() +" = dada."+ tematic.getIdDataField()+ 
   " AND dada.capesid= "+ tematic.getCapa().getId() +
   " AND feature.geometriesid= "+ tematic.getGeometria().getId());
listFeatures.addAll(query.getResultList());

这是我在spring+struts2上的hibernate配置

<bean id="entityManagerFactory"
            class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />

    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
            <property name="databasePlatform" value="org.hibernatespatial.oracle.OracleSpatial10gDialect" />
            <property name="showSql" value="true" />
        </bean>
    </property>
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernatespatial.oracle.OracleSpatial10gDialect</prop>
            <prop key="hibernate.default_schema">my_schema</prop>
        </props>
    </property>
</bean>

如何解决?或者如何强制几何类型来使其正常工作?

最佳答案

你能试试下面的映射定义吗:

@Column(name = "geometry", columnDefinition="Geometry", nullable = true) 
private Geometry geometry;

代替:

@Column(name="geometry")  
@Type(type = "org.hibernatespatial.GeometryUserType")  
private Geometry geometry;

关于java - 组织.hibernate.MappingException : No Dialect mapping for JDBC type: 2002,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3044244/

相关文章:

java - Spring注入(inject)一个单元素Set而不是一个空Set

oracle - 在SQL * Plus中,如何更改提示以显示已连接的用户和数据库?

sql - 在 oracle 的列中添加分数约束

java - Spring获取没有注释的entityManager

java - 从数组列表中删除重复项

java - Log4j - 记录内部 Log4j 事件

c# - ORA-12541 TNS :no listener on Oracle. DataAccess 连接打开

hibernate - 创建返回多个对象的查询连接 hibernate

java - EntityManager (Hibernate + MySQL) 在更新时截断空白处的字符串

java - Listener 接口(interface)的 HandleEvent 与 <Selection/Key/Focus>Listener 接口(interface)的特定 <Selection/Key/Focus>Event 之间的区别