我正在尝试遵循Hibernate Spatial教程,通过Hibernate将Spring
Roo与启用PostGIS的PostgreSQL数据库集成。所有非GIS的东西都可以正常工作,并且我已经从PostGIS模板创建了一个数据库。
问题是,一旦我向其中一个实体添加了Geometry属性,就可以:
@Type(type="org.hibernate.spatial.GeometryType")
private Point centerPoint;
…构建良好,但是尝试在服务器上运行(并实际上与DB交互)会导致以下错误:
Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: 3000
at org.hibernate.dialect.TypeNames.get(TypeNames.java:77)
at org.hibernate.dialect.TypeNames.get(TypeNames.java:100)
at org.hibernate.dialect.Dialect.getTypeName(Dialect.java:298)
at org.hibernate.mapping.Column.getSqlType(Column.java:208)
at org.hibernate.mapping.Table.sqlCreateString(Table.java:418)
at org.hibernate.cfg.Configuration.generateSchemaCreationScript(Configuration.java:1099)
at org.hibernate.tool.hbm2ddl.SchemaExport.<init>(SchemaExport.java:106)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:372)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:906)
... 41 more
Hibernate Spatial的依赖项似乎表明需要postgis-jdbc
1.5.3,但任何Maven存储库中都没有1.5.3,我无法从源代码进行编译。我试过1.5.2和1.3.3,并且都导致相同的3000错误。HS表示应“提供”
1.5.3,但将依赖项设置为1.5.3 <scope>provided</scope>
则无济于事。
这仅仅是需要精确版本的JDBC的情况,还是其他错误?
我的POM的相关摘录如下:
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-spatial</artifactId>
<version>4.0-M1</version>
</dependency>
<dependency>
<groupId>org.postgis</groupId>
<artifactId>postgis-jdbc</artifactId>
<version>1.5.2</version>
</dependency>
来自persistence.xml
:
<property name="hibernate.dialect" value="org.hibernate.spatial.dialect.postgis.PostgisDialect"/>
您的例外情况意味着Postgresql方言不支持注释提供的数据类型。用自定义类扩展它以增加支持可能是解决问题的一种方法。
我看过GIS项目,您是否也提供具有编译范围的javassist依赖项?
@Column(name = "geometry", columnDefinition="Geometry", nullable = true)
private Geometry geometry;
据我所知,您需要给columnDefinition
您的字段一个,否则它将无法将该字段映射到良好的db列。
问题内容: 尽管此标题存在一些问题,但我的查询并没有从那些线程中解决。 我正在通过postgres中的hibernate执行递归查询(与子句一起使用),查询结果也包含搜索路径 例如:查询结果的一行 hibernate状态是否具有String以外的任何映射类型,类似于或。 下面是查询输出的示例 Hibernate抛出异常 原因:org.hibernate.MappingException:没有JDB
我正在开发一个Spring JPA应用程序,使用MySQL作为数据库。我确保加载了所有spring-jpa库、hibernate和mysql-connector-java。 期待您的回答,谢谢! 顺便说一句,应用程序已经在使用spring Boot了。
问题内容: 我正在使用MySQL作为数据库的Spring JPA应用程序。我确保已加载所有spring-jpa库,hibernate和mysql-connector- java。 我正在运行mysql 5实例。这是我的application.properties文件的摘录: 执行集成测试时,spring可以正常启动,但无法创建hibernate的SessionFactory,但以下情况除外: 我认
虽然这个标题存在一些问题,但我的查询无法从这些线程中解决。 我在postgres中通过hibernate执行递归(使用with子句)查询,查询结果也包含搜索路径 ex:一行查询结果 Hibernate是否具有除字符串以外的的任何映射类型,类似于或。 下面是查询输出的示例 Hibernate正在抛出异常 原因:org.hibernate.MappingException:没有JDBC类型的方言映射:
我在启动Web服务器时遇到上述错误。我用 enum 映射和 enity 类。类似... 是什么问题,我在配置中遗漏了什么吗?谢谢!!
问题内容: 我是hibernate和Java的新手。我正在尝试执行本机sql查询,但是我被卡住了。谁能帮助我或检查我在哪里做错了? 我的Java代码是 : 错误跟踪 : 我确实调试了程序,发现程序中断了 hibernate配置文件: 问题答案: 您需要输入本机sqlquery语法。为了避免使用ResultSetMetadata的开销,或者只是为了更明确地说明返回的内容,可以使用。 像这样: