0

datanucleus-spatial プラグインで Datanucleus を使用しようとしています。マッピングに注釈を使用しています。PostGIS と Oracle Spatial の両方を試しています。datanucleus のチュートリアルに戻ります。私が経験していることは意味がありません。私の開発環境は、MAven 2.2.1 を使用した Netbeans 7.x (7.0、7.2、および 7.3 を試しました) です。http://www.datanucleus.org/products/datanucleus/jdo/guides/spatial_tutorial.htmlにある Datanucleus のチュートリアルで Position クラスを使用すると、Maven の依存関係に datanucleus-spatial プラグインを含めないと、 PostGISまたはOracleに問題なく接続し、データをコミットします。空間データはブロブとして保存されます(空間プラグインが存在しないため、これを期待していました)。PostGIS を使用すると、チュートリアルはうまく機能します。

org.postgis.Point クラスを oracle.spatial.geometry.JGeometry に置き換えて Position クラスを変更し、Oracle サーバーへの接続をポイントします。空間がない場合、ポイントはブロブとして保存されます。空間では、次の例外が発生します。

java.lang.ClassCastException: org.datanucleus.store.rdbms.datasource.dbcp.PoolingDataSource$PoolGuardConnectionWrapper は oracle.jdbc.OracleConnection にキャストできません

変更されたクラスは次のようになります。

@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 の素晴らしい世界に欠けているものはありますか? 空間が追加されるたびに失敗するのはなぜですか? 注釈を付けていますが、JDO xml ファイルは必要ですか? チュートリアルに記載されていない注釈はありますか? チュートリアルに示されている jdo xml ファイルが必要であり、これらのエラーが発生する理由がある場合、どこに配置すればよいですか? 私は現在、プロジェクトで 3 週間遅れており、これがすぐに修正されない場合は Hibernate に切り替えようとしています。

4

2 に答える 2

0

スタック トレースを表示しないため、DBCP が問題の原因であること以外はわかりません。また、サポートされている他の接続プールを簡単に使用できます。一部のOracle「接続」オブジェクトを他のJDBC接続にキャストできない場合、Oracle JDBCドライバーは、このバージョンのDBCPとは異なるバージョンのJDBC用である可能性がありますか? (そして、JDBC のいくつかのバージョンは後方互換性を壊します)。投稿には、それを確認または除外するための情報は提供されていません (ログはその一部を示しています)。すでに述べたように、利用可能な接続プールは他にもたくさんあります。

DN Spatial チュートリアルは自己完結型で、ダウンロード リンクと GitHub リンクがあり、JDO XML ファイルを使用する場合にどこに移動するかを定義します。提供されているチュートリアルは機能します

最後に、これは読む価値があるかもしれません...

于 2013-06-25T06:34:45.947 に答える