eclipselink - 带有 eclipseLink 2.1 / Payara Server 5.20 的 Apache Netbeans 12.4 - 找不到指定的转换器类
问题描述
目标是将持久性与包含几何信息的类一起使用,并将此信息存储到 Oracle SDO_GEOMETRY 字段中。
使用的工具 :
- 带有 eclipseLink 2.1 驱动程序的 Apache Netbeans 12.4
- Payar Server 5.2021 用于应用程序部署
如果我理解得很好,该类调用一个类转换器将 JGeometry 类型转换为 Oracle 期望的 MDSYS_SDO_GEOMETRY。看起来像 :
带有转换器调用的 Adresse.java 类:java 类
我的持久性文件看起来像:persistence.xml
我使用了“eclipselink.classloader”,但似乎没有解决问题。
执行应用程序时,服务器返回此错误:
异常描述:PersistenceUnit [com.spt_adressagenumerique_war_1.0-SNAPSHOTPU] 的预部署失败。内部异常:异常 [EclipseLink-7351] (Eclipse Persistence Services - 2.7.7.payara-p3):org.eclipse.persistence.exceptions.ValidationException 异常描述: 转换器类[org.eclipse.persistence.platform.database.oracle未找到在类 [com.spt.database.Adresse] 的映射属性 [position_gps] 上指定的 .converters.JGeometryConverter] 。请确保转换器类名正确且与持久性单元定义一起存在。
解决方案
我终于找到了以下解决方案:
- eclipse IDE的使用2021-06
- 使用休眠代替eclipseLink
- 在hibernate.cfg.xml中使用hibernate-spatial和org.hibernate.spatial.dialect.oracle.OracleSpatial10gDialect的指示
- 基于 org.geolatte.geom创建几何点 Point G2D
- 在类定义中使用相同类型进行映射。
使用此解决方案,无需从 Oracle 安装中获取 sdoapi.jar。
谢谢,这个解决方案可能会有所帮助。
推荐阅读
- c# - 批量更新类对象中的属性
- java - 反转长 Java 的最快方法
- python - 如何检查熊猫数据框中的卡住数据
- python - 将 RGB 值存储在空数组中时,获取“TypeError:只有 size-1 数组可以转换为 Python 标量”
- python - 在 Flask 中处理 webhook 响应超时的最佳方法?
- android - 应用订阅了 MQTT 主题,但缺少一些发布到该主题的消息
- c# - 如何在 Windows 上使用 C# 将“Hello world”打印到连接的打印机?
- node.js - 每次保存时都会生成 EADDRINUSE 错误
- codenameone - 设计轻量级选择器图标
- javascript - 对象传播的顺序和其他属性起什么作用?