我正在使用使用Spring3.1和Hibernate4.2的应用程序。对于空间功能,我们计划将hibernate spatial与postgis结合使用。但hibernate spatial使用bytea类型而不是几何体创建列。我无法找出这一切的根本原因。我已经花了几天时间解决问题,但没有成功。
hibernate-spatial-4.0。罐子是用的。
我正在使用下面的hibernate。属性文件
database.driverClassName=org.postgresql.Driver
database.url=jdbc:postgresql://127.0.0.1:5433/mpdb
database.username=postgres
database.password=postgres
hibernate.dialect=org.hibernate.spatial.dialect.postgis.PostgisDialect
hibernate.show_sql=true
hibernate.hbm2ddl.auto=update
我在实体中使用以下注释
@Column(columnDefinition="Geometry", nullable = true)
@Type(type = "org.hibernate.spatial.GeometryType")
private Point geom;
应用程序成功创建了下表,但它为geom列创建了bytea,而不是几何体类型
Table "public.tile"
Column | Type | Modifiers
----------------------------+-----------------------------+-----------
id | integer | not null
alt | double precision | not null
geom | bytea |
lat | double precision | not null
lng | double precision | not null
multipath_table | text | not null
multipath_table_min_value | double precision |
multipath_table_resolution | integer |
multipath_table_tx_id | text |
tile_created | timestamp without time zone | not null
tile_data_age | integer |
tile_data_present | text | not null
tile_num_tx | integer |
Indexes:
"tile_pkey" PRIMARY KEY, btree (id)
但是,我可以手动在postgis2中创建几何体类型列。2-postgres9。5数据库
我几乎通读了每一条线索,但都没有成功。需要帮助。
PostGisDialante注册JT或Geolatte点类型(请参阅Hibernate spatial文档和源代码。如果是JT,请通过更新依赖项和检查导入,确保使用最新版本(org.locationtech.JTS)而不是旧版本(com.livitSolutions.JTS)(我的类路径上既有旧的依赖项,也有新的依赖项,但不小心导入了错误的依赖项)。
一个工作示例(在Kotlin中,但是获取Java导入/注释应该很简单):
我的实体(注意:在Point类型上根本没有注释!):
import org.locationtech.jts.geom.Point
import java.time.ZonedDateTime
import javax.persistence.*
@Entity
data class TrackPoint(
@Id @GeneratedValue var id: Long? = null,
var location : Point,
var time : ZonedDateTime,
@ManyToOne
var track: Track? = null
)
创建TrackPoint的映射函数,然后将其持久化:
fun mapWayPoint2TrackPoint(it: WayPoint) : TrackPoint {
val coordinate = Coordinate(it.longitude.toDouble(), it.latitude.toDouble(), it.elevation.get().toDouble())
val point = geometryFactory.createPoint(coordinate)
return TrackPoint(location = point, time = it.time.get())
}
此外,您可能会使用一种较新的postgis方言(如PostGispg95方言),因为postgis方言已被弃用。
我可以通过修改实体类中使用的注释来解决这个问题。这对我有用@列(columnDefinition=“geometry(Point,4326)”)私有组织。冬眠空间的GeometryType geom;
问题内容: 我注释了一堆POJO,以便JPA可以使用它们在Hibernate中创建表。似乎所有表都被创建,除了一个非常中央的表,称为“修订”。Revision类具有注释,因此它将被重命名为RevisionT,因此与MySQL(目标数据库)中的任何保留字都没有冲突。 我删除整个数据库,重新创建它,然后基本上打开和关闭JPA会话。似乎可以毫无问题地重新创建所有表。 为什么在创建的架构中缺少单个表?可以
我正在使用OpenApi生成器为我的angular项目创建服务和模型。 这是我的 Json 的一个示例: 当我生成文件时,上传日期被转换为字符串而不是日期。 看: 有没有办法添加配置并使用Date作为格式为date-time的类型创建模型? 这是我用来启动生成的脚本:
我有一个像这样的xsd- 当我使用XJC生成类绑定时,我看到教师是List类型的 如何生成字符串列表而不是对象?任何帮助都很感激。 更新:使用“vamsilp”提供的解决方案——在删除“教师”元素上的“minOccurs”后,它工作得很好!XSD是由泽西从以下代码自动生成的: 我不知道如何删除“minOccurs”属性。我是否需要修改代码以忽略它?
本页包含内容: 自定义原型 实现默认值 支持基本布尔型初始化 支持Bool类型判断 支持兼容各们各派的类型 完善OCBool的布尔基因体系 小伙伴们,Swift中的Bool类型有着非常重要的语法功能,并支撑起了整个Swift体系中的逻辑判断体系,经过老码的研究和学习, Bool类型本身其实是对基础Boolean类型封装,小伙伴们可能咬着手指头问老码,怎么一会Bool类型,一会Boolean类型,其
我正在处理 PostgreSQL 客户记录。 我的任务是导出客户记录。 除了有联系信息的客户之外,我还有另一张桌子。 每行一个联系人项目(电话、值或电子邮件、值等)。 当我加入并关联数据时,我会为每个客户ID提取多个记录(如果每个客户有一个以上的通信类型,例如电话和电子邮件)。 我怎么能不为每种通信类型再做一行,而是将信息放入临时列(如电话列,传真列和电子邮件列)中 - 然后每个客户只有1行。 编