問題タブ [datanucleus]

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.

0 投票する
2 に答える
647 参照

java - エンティティ グループ

Google アプリ エンジンを少し試していますが、トランザクション フレームワークが不足しています。できる限りうまく実装していますが、同じ例外に何度も遭遇しています。単一のトランザクションで複数のエンティティ グループを操作することはできません。両方の要素が見つかりました... ドキュメント(http://code.google.com/appengine/docs/python/datastore/keysandentitygroups.html#Entity_Groups_Ancestors_and_Paths)を読みましたが、彼らが何を意味しているのか理解できないようです。基本的に私がやろうとしていることはこれです:

オブジェクトのリストがあります。それらがすでにデータベースにあるかどうかを確認したい。等しい場合は等しいかどうかを確認し、等しくない場合はマネージド インスタンスを更新します。そうでなければ、エンティティを永続化します。オブジェクト (まだ永続化されていないオブジェクト) のループでは、EntityMananger.find() を使用して ID でエンティティを検索します。2回目はエラーになります。

私は spring/hibernate(JPA) または EJB3 環境での作業に慣れていますが、これまで見たことがありません。同じトランザクションで同じタイプの 2 つのエンティティを検索できない理由を簡単に説明してもらえますか?

方法を探すのではなく、理由を探す...

0 投票する
1 に答える
55953 参照

java - JPA の複数の一意の制約

JPAを使用して、異なる列セットに複数の一意の制約が必要であることを指定する方法はありますか?

休止状態固有の注釈を見ましたが、休止状態とデータ核のどちらかをまだ決定しているため、ベンダー固有のソリューションを回避しようとしています。

0 投票する
11 に答える
121910 参照

java - JPAを使用したインデックス(非一意キー)の指定

フィールドをどのように定義しますか。たとえばemail、JPAアノテーションを使用してインデックスを作成します。emailこのフィールドには1日あたり文字通り何百万ものクエリがあり、キーがないと少し遅いため、一意でないキーをオンにする必要があります。

Hibernate固有のアノテーションを見たことがありますが、Hibernateとdatanucleusのどちらかをまだ決定しているため、ベンダー固有のソリューションを避けようとしています。

アップデート:

JPA 2.1以降、これを行うことができます。参照:アノテーション@Indexは、この場所では許可されていません

0 投票する
2 に答える
3396 参照

java - データベースに依存しない JPA オブジェクト uid の定義

次の例は、mysql 5.x を使用している場合は機能しますが、Oracle 10g データベースを使用している場合は機能しません。

データベース技術に依存しない一意の識別子フィールドを定義する方法はありますか?

これを休止状態でテストしたところ、Oracle を使用している場合にのみ次の例外が発生します。

0 投票する
1 に答える
143 参照

java - DataNucleus GAE JPQL は JPA1 標準とは異なりますか?

これは有効なクエリだと思いましたが、次のようになります。

このクエリを表現する正しい方法は何ですか?

0 投票する
1 に答える
3000 参照

postgresql - Datanucleus + PostgreSQL を使用して Google Web Toolkit アプリケーションを構成する方法

GWT と Google Datastore のサポートを使用してアプリケーションを作成しましたが、アプリケーションを独自のサーバーに移動しようとしており、Google App Engine と Datastore からアプリケーションを切り離そうとしています。

より正確に言えば、Google Datastore の使用をやめて、JDO と Datanucleus の使用を開始したいのですが、PostgreSQL (または他のリレーショナル データベース) を使用したいと考えています。Datanucleus.org で検索してみましたが、使用できる簡単なチュートリアルはありませんでした。

誰か助けてくれませんか?

どうもありがとうございました!=)

0 投票する
1 に答える
59 参照

java - JDO でのセットの使用

java.util.Set オブジェクトをメンバーとして含むモデルがあります。JDOを使用してこれを永続化するにはどうすればよいですか? 具体的には、.jdo ファイルで XML を定義するにはどうすればよいですか?

0 投票する
2 に答える
3362 参照

java - JDO(DataNucleus) を使用してデータを更新および削除するには?

apache.JDO /w DataNucleus を使用して小さなプロジェクトをセットアップしました。データは問題なく保存できるのですが、更新や削除しようとすると行き詰まりました。

シナリオは次のとおりです。

  1. オブジェクトを作成して永続化し、id を取得します
  1. PersistenceManager を閉じます
  2. アプリでオブジェクトを変更します (一時的)
  3. もう一度永続化しようとしましたが (id フィールドは同じです)、更新する代わりに、新しいオブジェクトが作成されます

Google App Engine では、同じシナリオで最新情報が得られました (予想される結果 - 以下を参照)。

私の問題を例示するために、小さなコードサンプルも提供します。

出力は次のようになると思います。

しかし、代わりにそれは私に与えます:

私が間違っていることについて何か提案はありますか? (ところで、RetainValues を有効にして、非トランザクション RW を使用しています)

0 投票する
1 に答える
992 参照

java - JDOQL を使用してインターフェースを照会し、結果セットをフィルタリングする方法は?

私はインターフェースを持っています

永続層は JDO を使用します。JDO 実装は DataNucleus です。ここで、JDOQL を使用してそのインターフェースのインスタンスを照会したいと考えています。

クエリ query = getPersistenceManager().newQuery(MyInterface.class);

それはうまくいきます。次に、クエリ結果を名前でフィルター処理します。もちろん、インターフェースには属性がありません。その実装の属性は異なる場合があります。MyInterface のインスタンスは、getName() メソッドによってその名前を返します。

このメソッドを JDOQL で使用するにはどうすればよいですか?

私は少し試しました:

  1. query.setFilter("name == \"" + name);
  2. query.setFilter("name() == \"" + name);
  3. query.declareVariables("myPackage.MyInterface myInterface"); query.setFilter("myInterface.name == \"" + name);
  4. query.declareVariables("myPackage.MyInterface myInterface"); query.setFilter("myInterface.name() == \"" + name);

JDO は依然として例外をスローし続けます (一番下を見てください)。これがインターフェイスに適用できるかどうかはわかりませんが、Java Bean 用語のプロパティである get および set アクセサー メソッドがあります。@Persistentインターフェイスの getName() メソッドとその実装にアノテーションを追加しましたが、何も変わりませんでした。

インターフェイス インスタンスのクエリをフィルタリングするにはどうすればよいですか?

前もって感謝します。

JDO がスローする例外を次に示します。

0 投票する
2 に答える
2693 参照

java - JPA クエリ toString

Google App-Engine データストアで実行している JPA クエリがあります。
パラメータを使用してクエリを作成しています。
すべてのパラメータを入力したら、クエリ文字列を表示したいと思います。

つまり、データストアによって実行されている実際のクエリを表示したいと考えています。
それは可能ですか?デバッグに本当に役立ちます。

この問題を解決するには、次のクエリを想定します。

System.out.println(SomeObj)'SELECT FROM MyClass C WHERE C.field = 17' が出力された場合、質問は解決されます。

デビッド