首先,我从昨天的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的新行
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的新行
HIBERNATE.HIBERNATE_SPATIAL_POSTGIS=org.hibernate.spatial.dialect.postgis.PostgisDialect到addon-jpa/src/main/resources/org/springframework/roo/addon/jpa/configuration.xml的新行
<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列的类型:
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
@Column(name = "geo")
private String Ar5Flate.geo;有人知道如何让逆向工程在hibernate-spatial和spring-roo上正常工作吗?
谢谢拉尔斯
发布于 2014-08-28 13:16:59
DBRE插件使用JDBC驱动程序元数据来实例化数据库。因为驱动程序只知道JVM类型,而不知道像JTS Polygon这样的自定义Hibernate类型,这就是原因,因为你得到了类型字符串。
您应该根据需要自定义geo字段。
https://stackoverflow.com/questions/25540574
复制相似问题