PostGIS 几何保存:“遇到无效的字节序标志值。”

2023-12-25

我有一个 Spring Roo + Hibernate 项目,它从客户端应用程序获取 JTS 众所周知的文本 (WKT) 字符串输入,将其转换为 JTS 几何对象,然后尝试将其写入 PostGIS 数据库。我遇到了一些问题JDBC 连接和类型 https://stackoverflow.com/questions/12156130/hibernate-spatial-no-dialect-mapping-for-jdbc-type-3000/,但这些似乎已通过以下方式解决:

@Column(columnDefinition = "Geometry", nullable = true) 
private Geometry centerPoint;

并且转换确实:

Geometry geom = new WKTReader(new GeometryFactory(new PrecisionModel(), 4326)).read(source);

然而现在当 Hibernate 尝试将我的 Geometry 对象写入数据库时​​,我收到一个错误:

2012-08-31 21:44:14,096 [tomcat-http--18] ERROR org.hibernate.util.JDBCExceptionReporter - Batch entry 0 insert into land_use (center_point, version, id) values ('<stream of 1152 bytes>', '0', '1') was aborted.  Call getNextException to see the cause.
2012-08-31 21:44:14,096 [tomcat-http--18] ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: Invalid endian flag value encountered.

很明显,该错误与二进制表示有关,它可能是作为一个众所周知的二进制(WKB)生成的,其中包含一些字节顺序 http://edndoc.esri.com/arcsde/9.0/general_topics/wkb_representation.htm。然而,由于 Hibernate 隐藏了所有持久性,我无法真正判断事情的发展方向。

我已经和这个几何问题斗争了好几天了,关于这些错误的信息很少,所以有人有什么好主意吗?我可以在某处指定字节顺序(Hibernate 或 PostGIS),或者以不同的格式存储(WKT)吗?

EDIT:我还应该提到,我正在使用最新的一切,通常看起来是兼容的:

  • 春季 3.1.1、袋鼠 1.2.1
  • 休眠3.6.9
  • 休眠空间 4.0-M1
  • jts 1.12
  • PostgreSQL 9.1
  • postgis-jdbc 1.5.3(不是最新的,但是推荐用于休眠空间 http://www.hibernatespatial.org/dependencies.html,从源代码编译)
  • postgis-jdbc 2.0.1(现在刚刚尝试匹配与 PostgreSQL 安装的版本,同样的问题)

The Hibernate 空间 4 教程 http://www.hibernatespatial.org/tutorial-hs4.html建议我将属性注释做为:

@Type(type="org.hibernate.spatial.GeometryType")
private Geometry centerPoint;

...但是当我这样做时我得到这个其他错误 https://stackoverflow.com/questions/12156130/hibernate-spatial-no-dialect-mapping-for-jdbc-type-3000/,当前注释解析。


我解决了这个问题,添加到“application.properties”这一行:

spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.postgis.PostgisDialect
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PostGIS 几何保存:“遇到无效的字节序标志值。” 的相关文章

随机推荐

  • 自动向下滚动页面,直到用户向上滚动

    我得到了这个简单的脚本来向下滚动页面 function scrollDown window scrollBy 0 50 horizontal and vertical scroll increments scrolldelay setTim
  • python 闭包奇怪的行为

    我正在尝试问题中的一段代码Python 中的词法闭包 https stackoverflow com questions 233673 lexical closures in python flist for i in xrange 3 d
  • Admob 广告未加载 - 无法加载广告:0

    我正在尝试加载 Admob Native 广告 以前 应用程序更新之前 曾经显示广告 但现在不显示 我已经在下面发布了代码 xml 和 Logcat Code NativeExpressAdView adView NativeExpress
  • TensorFlow 的 cifar10.py 出现 Argparse 错误

    当我运行时出现以下错误python cifar10 py argparse ArgumentError argument batch size conflicting option string s batch size 这是运行的完整输出
  • 将 JQuery 与 Node.js 结合使用时出现错误

    我在 Windows 7 上运行了全新安装的 node js 并且我正在尝试运行一个非常基本的 JQuery 脚本 名为a js 其中仅包含 require jquery jquery 不幸的是 这不能与 JQuery 一起运行 给我一个
  • 替换 iOS ALAssetsLibrary 中的 ALAsset 对象

    我正在开发一个应用程序 该应用程序读取图像的地理位置并允许用户修改此信息并将此数据写回 我使用 writeImageDataToSavedPhotosAlbum 函数成功读取数据 操作并写入库 问题在于 它不是更新原始图像 而是创建一个新图
  • 如何将变量作为 stdin 从 PHP 传递到命令行

    我正在尝试编写一个 PHP 脚本 该脚本使用pdftk http www accesspdf com pdftk 应用程序将 XFDF 与 PDF 表单合并并将合并的 PDF 输出给用户 根据pdftk文档 我可以通过via传递表单数据st
  • 在没有任何提交的情况下撤消 git Reset

    正如我所想 我最近想更新远程 git 存储库上的代码 我没有意识到它甚至还没有承诺 我确实创建了一些错误 所以我想将分支重置到之前的状态 正如你所期望的 我使用了git reset hard 好吧 从那以后一切 整个项目 都消失了 除了 g
  • ruby 中的神奇注释( # Encoding: utf-8 )是如何工作的?

    ruby中的神奇注释是如何工作的 我正在谈论 Encoding utf 8 这是预处理指令吗 这种结构还有其他用途吗 源文件顶部的 Ruby 解释器指令 这称为神奇评论 在处理源代码之前 解释器会读取此行并设置正确的编码 我相信这对于解释语
  • 如何使 webapp2 的尾部斜杠成为可选?

    我正在使用新的 webapp2 现在是 1 6 中的默认 webapp 并且我无法弄清楚如何在代码中使尾部斜杠成为可选 如下所示 webapp Route feed handler feed 我试过了 feed feed feed and
  • 为什么 C++ 静态库项目没有链接器设置?

    暴露我的无知 为什么静态库项目 在我的例子中是 Visual Studio 在项目属性页面中没有链接器设置 我认为 链接 对于图书馆来说是一件大事 但显然我从根本上误解了一些东西 制作可执行文件分为三个步骤 编译器将源代码转换为 到目标文件
  • 通过 .css 将

    我有两个 div 元素 现在我的简化 css 是这样的 leftdiv this is the navigation pane min height 600px max height 600px rightdiv this is the p
  • 如何使用 C# 下载 Google SpreadSheets?

    我可以使用我从网上找到的以下代码使用我的应用程序登录谷歌 它返回一个授权代码作为响应 Google 帮助说这个授权码应该用于发送未来的 POST GET 请求 我需要从以下位置下载 Excel 格式的电子表格当我登录谷歌时 我通常可以通过浏
  • Codeigniter 模板库,带有部分视图 - 哪一个?

    我开始研究这个主题有几个原因 1 减少控制器中的重复代码 2 配置我的网站中使用的 3 个主要布局 1 栏 2 栏和 3 栏页面 3 能够拥有单独的部分视图文件 并根据模板相应地加载它们 主要内容 页眉 页脚和侧边栏 我在谷歌上搜索了这个主
  • Stripe 自定义结帐未发布

    任何人都可以帮忙解释为什么在完成结帐弹出窗口的输入后没有发布到预订 收费吗 简单的结帐示例发布得很好 我是 js 新手 所以我不太了解命令的流程
  • GLib编译错误(ffi.h),但libffi已安装

    配置成功后 make 退出snipped gclosure c 29 17 fatal error ffi h No such file or directory compilation terminated 我安装了 libffi 并找到
  • 用jquery比较开始时间和结束时间?

    这是代码 document ready function st change function var st st val start time Format 9 00 PM var et et val end time Format 11
  • 从 FirefoxOS 应用程序发送包含内容的电子邮件

    我正在尝试从 FirefoxOS 应用程序发送电子邮件以共享其生成的内容 目前我正在使用 var createEmail new MozActivity name new data type mail 但我无法找到任何方法将内容附加到此电子
  • 如何在 flutter dart 中使用具有多个条件的三元运算符?

    如何使用三元 if else 与两个或多个条件使用 OR 和 AND 例如 if foo 1 foo 2 do something else do something 我想用它 foo 1 foo 2 doSomething doSomet
  • PostGIS 几何保存:“遇到无效的字节序标志值。”

    我有一个 Spring Roo Hibernate 项目 它从客户端应用程序获取 JTS 众所周知的文本 WKT 字符串输入 将其转换为 JTS 几何对象 然后尝试将其写入 PostGIS 数据库 我遇到了一些问题JDBC 连接和类型 ht