Oracle 添加空间扩展时,为什么Datanucleus中会出现错误
我正在尝试将Datanucleus与Datanucleus空间插件一起使用。我正在为映射使用注释。我正在尝试PostGIS和Oracle spatial。我将回到datanucleus的教程。我所经历的没有任何意义。我的开发环境是Netbeans 7.x(我已经尝试过7.0、7.2和7.3)和MAven 2.2.1。使用位于的Datanucleus教程中的Position类,我发现如果我在Maven依赖项中不包含Datanucleus空间插件,它连接到PostGIS或Oracle不会有问题,并提交数据,空间数据存储为blob(我预期会这样,因为不存在空间插件)。使用PostGIS,本教程运行良好 我通过将org.postgis.Point类替换为oracle.spatial.geometry.JGeometry来修改Position类,并将连接指向oracle服务器。如果不使用spatial,该点将再次存储为blob。对于spatial,我得到以下异常: java.lang.ClassCastException:org.datanucleus.store.rdbms.datasource.dbcp.PoolgDataSource$PoolGuardConnectionWrapper无法强制转换为oracle.jdbc.OracleConnection 修改后的类如下所示:Oracle 添加空间扩展时,为什么Datanucleus中会出现错误,oracle,jdo,postgis,spatial,datanucleus,Oracle,Jdo,Postgis,Spatial,Datanucleus,我正在尝试将Datanucleus与Datanucleus空间插件一起使用。我正在为映射使用注释。我正在尝试PostGIS和Oracle spatial。我将回到datanucleus的教程。我所经历的没有任何意义。我的开发环境是Netbeans 7.x(我已经尝试过7.0、7.2和7.3)和MAven 2.2.1。使用位于的Datanucleus教程中的Position类,我发现如果我在Maven依赖项中不包含Datanucleus空间插件,它连接到PostGIS或Oracle不会有问题,并提
@PersistenceCapable
public class Position
{
@PrimaryKey
private String name;
@Persistent
private JGeometry point;
public Position(String name, double x, double y)
{
this(name, JGeometry.createPoint(new double[]{x, y}, 2, 4326));
}
public Position(String name, JGeometry point)
{
this.name = name;
this.point = point;
}
public String getName()
{
return name;
}
public JGeometry getPoint()
{
return point;
}
@Override
public String toString()
{
return "[name] "+ name + " [point] "+point;
}
}
在DataNucleus Spatial这个神话般的世界里,我缺少了什么吗?为什么每次添加spatial时都会失败?即使我在注释,我也需要JDO xml文件吗?教程中是否没有提供注释?如果教程中显示的jdo xml文件是必需的,并且我得到这些错误的原因是什么,我应该把它放在哪里?我目前的项目进度落后了3周,如果这个问题不能很快得到解决,我将切换到Hibernate。您没有提供堆栈跟踪,因此除了DBCP之外无法判断是什么原因导致了问题,而且您可以很容易地使用支持的任何其他连接池。如果某个Oracle“Connection”对象无法强制转换到其他JDBC连接,那么Oracle JDBC驱动程序可能是用于与此版本的DBCP不同的JDBC版本?(有些版本的JDBC破坏了向后兼容性)。文章中没有提供任何信息来确认或排除这一点(日志会告诉你其中的一些)。如前所述,还有大量其他可用的连接池 DN Spatial教程是,有下载链接和GitHub链接,它定义了如果使用JDO XML文件,它将去哪里。提供的教程很有效
最后,可能值得一读…为了避免
无法转换到oracle.jdbc.OracleConnection
错误,我建议您使用可以在central maven repository上找到的datanucleus geospatial 3.2.7版本