問題タブ [hibernate-spatial]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spring Boot プロジェクトで Hibernate Spatial を使用しようとすると、このエラーが発生するのはなぜですか? InstantiationException
Hibernate Spatialを、作業中のSpring Bootプロジェクトに構成しようとしていますが、問題が見つかりました。
私はMariaDBを使用しています(つまり MySqlです) nd Hibernate は以前に修正されて構成されていました (GIS 機能以外のすべてに問題なく使用しました)。
このチュートリアルの使用を開始しています: http://www.hibernatespatial.org/documentation/02-Tutorial/01-tutorial4/
しかし、私は Hibernate 4 の代わりに Hibernate 5 を使用しています(私の外部ライブラリにはHibernate 5.0.11があることがわかります) 。
だから、これは私のpom.xmlコンテンツです:
ご覧のとおり、この依存関係を追加しました。
地理的なタイプをポイントにする必要があると思います(ただし、それについてはまったくわかりません)。
次に、テーブルをマップするこのエンティティ クラスがあります。
このクラスでは、次のフィールドを追加しました。
これは、データ型としてgeographic_positionとPointという名前を持つデータベースの宿泊施設テーブルのフィールドをマップする必要があります。
投稿された例では、GeolatteGeometryTypeの代わりに@Type (type="org.hibernate.spatial.GeometryType")を使用していますが、私のorg.hibernate.spatial.*パッケージにはGeometryTypeはありませんが、このGeolatteGeometryTypeクラスを見つけることができます(おそらく、Hibernate 5 によって提供されるより新しい実装である可能性がありますが、それについてはわかりません)。
アプリケーションを起動すると、スタックトレースに次のエラー メッセージが表示されます。
これは私のapplication.properties構成ファイルでもあります。
何が問題ですか?私は何が欠けていますか?この問題を解決するにはどうすればよいですか?
spring - エンティティ クラスの Point フィールドをデータベースの Point フィールドにマップできないのはなぜですか? 列「場所」はポイント型ですが、式はバイト型です
私は最初のSpring Boot + Spring Data JPA + Hibernate 5をPostgreSQLデータベースで作業しています。
データ型としてポイントを持つフィールドをマップしようとすると、次の問題が発生します(そのため、Hibernate 5 にネイティブに含まれているHibernate Spatialを使用しています。
だから私は次のような状況があります:
都市という名前の次の単純なデータベース テーブルがあります。
たとえば、このテーブルには次のレコードが含まれます。
次に、前の都市データベース テーブルをマップする次のCitiesエンティティ クラスがあります。
Pointクラスのこの実装を使用しています: com.vividsolutions.jts.geom.Pointは、いくつかのチュートリアルで見つけたためですが、これらの他の実装も選択できるため、正しいかどうかはわかりません。
次に、DAO クラスを表すこのSpring Data JPAインターフェースがあります。
ご覧のとおり、 JpaRepositoryを拡張し、メソッド シグネチャが (JPA を使用して) 私のクエリを「実装」します。
そこで、JUnit テスト クラスに次のテスト メソッドを実装しました。このテスト メソッドでは、データベースの都市テーブルに新しいレコードを挿入しようとしています。
そのため、永続化するオブジェクト (Cities rome) を作成しています。その上に新しいPointオブジェクトを設定し、次の行で永続化しようとしています。
問題は、save(rome)メソッドを実行しようとすると、次の例外がスローされることです。
したがって、基本的にエラーメッセージは次のとおりです。
そのため、データ型としてポイントを持つテーブルの場所フィールドに何か問題を入れようとしているようです。com.vividsolutions.jts.geom.Pointオブジェクトをエンティティ クラスに変換できないのはなぜですか?
これは私のapplication.propertisファイルで、私のアプリケーションで唯一の構成ファイルです。
ご覧のとおり、Spring.jpa.hibernate.naming-strategyをPostgisDialect方言に設定して、Hibernate 空間を使用しています。
ウェアリングとは?私は何が欠けていますか?この問題を解決するにはどうすればよいですか?
maven - Maven - リモート リポジトリ アクセスにかかる時間を短縮
私のプロジェクトは hibernate-spatial パッケージを使用しています。以下は pom.xml ファイルからのエントリです
するとmvn clean install
、maven はもう存在しないリモート リポジトリにアクセスしようとします。以下は、コンソール ログに表示されるメッセージです。
ダウンロード: http://www.hibernatespatial.org/repository/_project _related_info/maven-metadata.xml 2016 年 11 月 24 日 9:34:20 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain. RetryExec 実行情報: {} へのリクエストの処理中に I/O 例外 (java.net.SocketException) がキャッチされました-> http://www.hibernatespatial.org:80 : 操作がタイムアウトしました 2016 年 11 月 24 日 9:34:20 AM org .apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec 実行情報: {} へのリクエストを再試行しています-> http://www.hibernatespatial.org:80 2016 年 11 月 24 日 9:35:23 AM org .apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec 実行情報: {} へのリクエストの処理中に I/O 例外 (java.net.SocketException) がキャッチされました ->http://www.hibernatespatial.org:80 : 操作がタイムアウトしました 2016 年 11 月 24 日 9:35:23 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec 実行情報: {}-> http://www.hibernatespatial.org:80 [警告] メタデータ _project_related_info/maven-metadata.xml を Hibernate Spatial リポジトリ ( http://www.hibernatespatial.org/repository ) との間で転送できませんでした: 接続www.hibernatespatial.org:80 [www.hibernatespatial.org/62.213.201.148] に失敗しました: 操作がタイムアウトしました
実際、パッケージは私の~/.m2/repository
フォルダー内で利用できます。そのため、複数のタイムアウトの後、maven はローカル リポジトリを検索し、そこで見つけてビルドに成功します。リモートリポジトリのチェックにかかる時間を短縮するにはどうすればよいですか?
以下をファイルに入れようとしましたが、~/.m2/settings.xml
役に立ちませんでした。
java - Hibernate Spatial - 無効なエンディアン フラグ値が検出されました
Hibernate と Hibernate Spatial を使用した Spring Boot プロジェクトがあります。アプリケーションの目的の 1 つは、現在のユーザーの周囲にあるすべての一致を検索することでした。
次に、次のリポジトリですべての一致を見つけようとします。
そして、それは私がメソッドを呼び出すときです:
したがって、このコードでデータにアクセスしようとすると、次のエラーが発生します。
誰かがこのエラーを解決する方法を知っていれば、彼に感謝します. ご協力いただきありがとうございます。
編集 :
これが私のapplication.propertiesファイルです:
java - Hibernate Spatial とレガシー データベース
バックグラウンド:
レガシー データベースがあり、そのスキーマを変更できません。私のエンティティのマッピングは次のようになります。
問題:
サークル内のすべてのSomeObjectsを選択する休止状態のクエリを作成する必要があります。この問題を解決するには、Hibernate Spatialを使用するのが適切なツールである必要があります。しかし、私が見つけることができるすべての例は、私が持っているように座標に別々の列を使用する代わりに、タイプPointの列を宣言しています。私はdbスキーマを変更できないので、そのようなアプローチはうまくいきません。
では、休止状態空間を使用してこの問題を解決できますか? はいの場合、クエリはどのようになりますか?
解決:
Karthik Prasad は、空間とは何か、一般的にどのようなオプションがあるのかを明確かつ正確に説明しました。私はOracle DBを使用しているので、もう1つのオプションがありました.sdo_geomパッケージを使用してください。したがって、最後に、休止状態のクエリ/基準の代わりに、SQL クエリを使用しました。
java - Spring Java JPA: hibernate 空間での仕様の使用
空間データを使用して取り組んでいるプロジェクトに Spring Boot を使用しています。空間データについては、Hibernate Spatial を使用しています。これは私のエンティティの構成です:
Point
はクラスのどこですかcom.vividsolutions.jts.geom.Point
。これにはゲッターとセッターも含まれます。
このエンティティを法線で取得するrepository.findOne("id")
と、ポイントにマップされた結果の位置も含まれます。ただし、後でシステムに動的クエリ システムが必要です。したがって、から継承するクラスでデータもクエリしますorg.springframework.data.jpa.domain.Specification
。この指定を使用する場合、場所は常にnull
です。SQL デバッグ情報は、場所がデータベースから取得されたことを示していますが、何らかの理由で、これがエンティティ オブジェクトにマップされていません。
私のスプリング ブート バージョンは 1.4.0.RELEASE です。データはmysqlデータベースから来ています。
を使用してジオメトリ データを取得するための助けをいただけれSpecification
ば幸いです。
java - Hibernate Spatial Create Geometry オブジェクト
Java で oracle 空間を使用して位置情報アプリを開発しています。orm レイヤーに hibernate 4.0 空間を使用しています。私は空間に不慣れで、休止状態の空間のベストプラクティスを見つけることができませんでした。私のデータベースモデルは次のとおりです。
挿入ステートメントは次のとおりです。
エンティティ モデルは次のとおりです。sdo_geometry オブジェクトのみを共有しています。
この spahe オブジェクトに動的パラメーターを入力するにはどうすればよいですか。例えば;
sdo_gtype、sdo_srid、sdo_point_type パラメータをジオメトリ オブジェクトに動的に渡す方法は?