我正在使用 Hibernate 5.0 + Postgres 9.4
我的实体使用UUIDs 作为标识符。
该项目还使用hibernate-spatial.
该id属性被简单地注释为
@Id
@GeneratedValue
private UUID id;
Run Code Online (Sandbox Code Playgroud)
持久化任何实体(不仅是具有几何数据的实体)后,我收到以下错误:
column "id" is of type geometry but expression is of type uuid
Run Code Online (Sandbox Code Playgroud)
看起来映射到我的类型存在一些冲突;虽然我不是 Hibernate 类型映射的专家。
有没有人可以帮助我克服这个问题?
有没有办法在Hibernate属性或连接字符串中设置sql_mode(对于MySql数据库)?
谢谢,
斯特凡诺
是否可以使用 iText 更改 PDF 文档的现有属性?
我试过这个
Map<String, String> moreInfo = new HashMap<String, String>();
moreInfo.put(Meta.PRODUCER, "XXX");
moreInfo.put(Meta.AUTHOR, "YYY");
try {
stamp1.setMoreInfo(moreInfo);
}
catch (Throwable t) {
Log.d(this.getClass().getName(), t.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
我没有任何例外,但也没有任何变化。
我在使用 H2 和 GeoDB(内存中,junit)时遇到问题。
此外,使用 Hibernate 5(每个包的最新版本,包括 hibernate-spatial)和 Spring 4。
通过 id 实体持久化和查询工作得很好。可以毫无问题地识别几何类型。
当我尝试使用地理空间函数查询数据库时出现问题,并且 Hibernate 失败说他找不到该函数:
[ERROR] 2015-12-16 11:16:15,000: org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions:129: Function "ST_CONTAINS" not found; SQL statement:
select geoentity0_.id as id1_0_, geoentity0_.location as location2_0_, geoentity0_.name as name3_0_ from GEO_ENTITY geoentity0_ where ST_Contains(geoentity0_.location, ?)=1 [90022-190]
Run Code Online (Sandbox Code Playgroud)
看起来像方言的问题。这是我正在使用的(在persistence.xml中):
<property name="hibernate.dialect" value="org.hibernate.spatial.dialect.h2geodb.GeoDBDialect" />
Run Code Online (Sandbox Code Playgroud)
这些是我正在使用的 deps:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.190</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.opengeo</groupId>
<artifactId>geodb</artifactId>
<version>0.7</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我该如何解决?
编辑:添加 h2gis
我试过添加h2gis到我的 deps 但没有改变错误。我也试着来代替geodb用h2gis,具有相同的结果。
<dependency>
<groupId>org.orbisgis</groupId>
<artifactId>h2spatial-ext</artifactId>
<version>1.2.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) 我有一个实体A(ManyToMany,direct,lazy),其中包含对实体B集合的引用。
我需要查询数据库,根据它引用的类B的元素搜索实体A。如何用Spring规范来做到这一点?