首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Spring-roo、hibernate-spatial、Postgres 9.3、postgis 2对几何等空间类型进行逆向工程(Polygon,4258)?

如何使用Spring-roo、hibernate-spatial、Postgres 9.3、postgis 2对几何等空间类型进行逆向工程(Polygon,4258)?
EN

Stack Overflow用户
提问于 2014-08-28 12:09:58
回答 1查看 385关注 0票数 0

首先,我从昨天的1.2.6.BUILD-SNAPSHOT添加了hibernate-spatial到org.springframework.roo.addon.jpa。

通过对org.springframework.roo.addon.jpa的代码进行以下更改

到addon-jpa/src/main/java/org/springframework/roo/addon/jpa/JdbcDatabase.java的新行

代码语言:javascript
复制
HIBERNATE_SPATIAL_POSTGIS("HIBERNATE_SPATIAL_POSTGIS", "org.postgresql.Driver",
        "jdbc:postgresql://HOST_NAME:5432"), //

到addon-jpa/src/main/resources/org/springframework/roo/addon/jpa/jpa-dialects.properties的新行

代码语言:javascript
复制
HIBERNATE.HIBERNATE_SPATIAL_POSTGIS=org.hibernate.spatial.dialect.postgis.PostgisDialect

到addon-jpa/src/main/resources/org/springframework/roo/addon/jpa/configuration.xml的新行

代码语言:javascript
复制
        <database id="HIBERNATE_SPATIAL_POSTGIS">
        <dependencies>
            <dependency>
                <groupId>postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>9.1-901-1.jdbc4</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-spatial</artifactId>
                <version>4.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.vividsolutions</groupId>
                <artifactId>jts</artifactId>
                <version>1.13</version>
            </dependency>
        </dependencies>
    </database>

在postgres数据库中,我有一个列geo,它是geometry(Polygon,4258)

然后我运行下面的spring-roo命令“jpa setup --provider HIBERNATE --database HIBERNATE_SPATIAL_POSTGIS”,运行正常。

当我运行“database introspect --schema sde_ar5”

我在响应中得到了以下geo列的类型:

代码语言:javascript
复制
column name="geo" primaryKey="false" required="false" scale="0" size="2147483647" type="1111,geometry"

我运行命令“数据库反向工程--模式sde_ar5 --包no.skogoglandskap.reveng.sde_ar5”

结果类型是列geo的字符串,而不是com.vividsolutions.jts.geom.Polygon

代码语言:javascript
复制
@Column(name = "geo")
private String Ar5Flate.geo;

有人知道如何让逆向工程在hibernate-spatial和spring-roo上正常工作吗?

谢谢拉尔斯

EN

回答 1

Stack Overflow用户

发布于 2014-08-28 13:16:59

DBRE插件使用JDBC驱动程序元数据来实例化数据库。因为驱动程序只知道JVM类型,而不知道像JTS Polygon这样的自定义Hibernate类型,这就是原因,因为你得到了类型字符串。

您应该根据需要自定义geo字段。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25540574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档