問題タブ [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 投票する
1 に答える
4659 参照

eclipse - datanucleusエンハンサーとjavaw:「パラメーターが正しくありません」

私はWindowsXPを使用しており、gwt+gaeアプリ用のeclipseとdatanucleusエンハンサーを使用しています。エンハンサーを実行すると、エラーが発生します。

私は以前にこの問題を抱えていましたが、それは長いクラスパスが原因でした。ライブラリを移動したり、Eclipseのインストールを移動したりして、クラスパスを1時間半短縮しましたが、運がありませんでした。

どこから答えを探し始めるべきかについてのアイデアはありますか?エラーメッセージには、それがどのディレクトリにあるかなどに関する情報は含まれていません。ちょっと腹立たしいです!javawの出力をより詳細にすることは可能ですか?このクラスパスサイズのバグを回避することは可能ですか?

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

java - Eclipseでコンパイラオプション「プロセッサ」を設定するにはどうすればよいですか?

次の手順に従って、DataNucleusエンハンサーを構成しようとしています。

Eclipseを使用している場合は、プロジェクトのプロパティを編集する必要があります。「Javaコンパイラ」->「注釈処理」に移動し、プロジェクト固有の設定を有効にして、注釈処理を有効にします。次に、[Javaコンパイラ]->[アノテーション処理]->[ファクトリパス]に移動し、プロジェクト固有の設定を有効にしてから、次のjarをリストに追加します:datanucleus-enhancer.jar、datanucleus-core.jar、jdo-api.jar、asm.jarコンパイラ引数プロセッサをorg.datanucleus.enhancer.EnhancerProcessorに設定します

大胆な文章にたどり着くまでは、すべて素晴らしかったです。それらが何を意味するのか理解できないようです。誰かがこの文を拡張して、より初心者に優しいものにすることはできますか?:)

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

java - JDO を使用して、特定のインターフェースを実装するすべてのオブジェクトを照会することは可能ですか?

次のクエリを使用してみました。

しかし得た:

org.datanucleus.exceptions.NoPersistenceInformationException: クラス
「com.sampleapp.data.dataobjects.ICommentItem」は持続可能である必要がありますが、このクラスのメタ データ/注釈が見つかりません。メタデータ/注釈が有効なファイルの場所に定義されていることを確認してください。

Datanucleus フォーラムで、誰かが (数年前) を使用して提案したのを見ました:

試してみましたが、スキーマ更新を実行してもテーブルが作成されませんでした。タグはまだ関連性がありますか? ドキュメントには何も表示されません。

私も試しました:

しかし、schema-create を実行すると、次のエラーが発生しました。

dataobjects.ICommentItem 2010 年 10 月 23 日 6:46:33 PM org.datanucleus.enhancer.asm.ASMClassEnhancer 拡張情報: クラス "com.sampleapp.data.dataobjects.Article" は既に拡張されています。2010 年 10 月 23 日 6:46:33 PM org.datanucleus.enhancer.DataNucleusEnhancer addMessage SEVERE: DataNucleus Enhancer がエラーで完了しました。詳細については、エンハンサー ログを確認してください。一部のクラスは強化されている可能性がありますが、一部のエラーが発生しました クラスの強化中の失敗 - 詳細についてはログを参照してください(DataNucleusEnhancer.java:620) org.datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1316) で ASMClassEnhancer 拡張情報: クラス "com.sampleapp.data.dataobjects.Article" は既に拡張されています。2010 年 10 月 23 日 6:46:33 PM org.datanucleus.enhancer.DataNucleusEnhancer addMessage SEVERE: DataNucleus Enhancer がエラーで完了しました。詳細については、エンハンサー ログを確認してください。一部のクラスは強化されている可能性がありますが、一部のエラーが発生しました クラスの強化中の失敗 - 詳細についてはログを参照してください(DataNucleusEnhancer.java:620) org.datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1316) で ASMClassEnhancer 拡張情報: クラス "com.sampleapp.data.dataobjects.Article" は既に拡張されています。2010 年 10 月 23 日 6:46:33 PM org.datanucleus.enhancer.DataNucleusEnhancer addMessage SEVERE: DataNucleus Enhancer がエラーで完了しました。詳細については、エンハンサー ログを確認してください。一部のクラスは強化されている可能性がありますが、一部のエラーが発生しました クラスの強化中の失敗 - 詳細についてはログを参照してください(DataNucleusEnhancer.java:620) org.datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1316) で DataNucleusEnhancer addMessage SEVERE: DataNucleus Enhancer がエラーで完了しました。詳細については、エンハンサー ログを確認してください。一部のクラスは強化されている可能性がありますが、一部のエラーが発生しました クラスの強化中の失敗 - 詳細についてはログを参照してください(DataNucleusEnhancer.java:620) org.datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1316) で DataNucleusEnhancer addMessage SEVERE: DataNucleus Enhancer がエラーで完了しました。詳細については、エンハンサー ログを確認してください。一部のクラスは強化されている可能性がありますが、一部のエラーが発生しました クラスの強化中の失敗 - 詳細についてはログを参照してください(DataNucleusEnhancer.java:620) org.datanucleus.enhancer.DataNucleusEnhancer.main (DataNucleusEnhancer.java:1316) で

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

java - JDO を使用してオブジェクトを永続化/取得するときに、DataNucleus DAO オブジェクトで ClassCastException が発生する

Spring と Jetty を使用して単純な Web アプリケーションを作成し、DataNucleus と DB4O を使用して Hello World JDO テストを作成しています。

クラスを問題なく永続化できますが、クラスのクエリを実行すると、 が取得され、ClassCastExceptionにキャストできませa.b.c.MyClassa.b.c.MyClass

作成したオリジナルオブジェクトのクラスローダを調べると[WebAppClassLoader@1592226291]、当然SpringsのWebAppクラスローダです。

同じサーブレット メソッドで永続化操作とクエリ操作の両方を実行しています。単純なクエリを使用して DB からオブジェクトを再読み込みすると、DB から abcMyClass オブジェクトのセットが返されますが、クラスローダーは[sun.misc.Launcher$AppClassLoader@5acac268]. .

ここの DataNucleus ドキュメントに従ってください http://www.datanucleus.org/extensions/classloader_resolver.html

...JDO2 クラスローディング メカニズムは 3 つのクラス ローダーを使用し
ます * PersistenceManagerFactory を作成するときに、クラス ローダーを指定できます。指定されている場合は、これが最初に使用されます
。 * 2 番目に試行されるクラス ローダーは、現在のスレッドのクラス ローダーです。
* 3 番目に試すクラス ローダーは、PMF コンテキストのクラス ローダーです。

文書化された最初の 2 つのオプションについて説明WebAppClassLoaderし、サーブレットで次のデバッグ手順を実行して、クラスローダーがサーブレットにあることを確認しました。

どちらも[WebAppClassLoader@1592226291]クラスローダーとして生成されます。

ここでどこが間違っているのかわかりません。

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

java - JDOがコレクションを取得/永続化しない

次のデータモデルクラスを定義しています。

MyPOJOは、Serializableを実装する単純なクラスです。

myFieldこれをDataNucleus/JDOを介して永続化して取得すると、正常に読み取ることができますが、 myCollectionnullになります(永続化する前に2つのMyPOJOオブジェクトのベクトルに設定しました)。

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

google-app-engine - AppEngineデータストアは複数の親から子の数を取得します

Google App Engine(DataNucleus)のデータストアを使用しています。チャットとレーティングの2つのクラスがあります。チャットは複数の評価を受けることができるので、チャットクラスにリストを追加して1対多の関係を作成しました。

未評価のチャットの数を知りたいので、次のようにしました。

すべてのチャットを繰り返し処理し、評価の数が0であるかどうかを確認します。

このソリューションは、チャットが10回ある場合はうまく機能しますが、チャットが500回以上ある場合は、速度がひどいです(15秒以上)。

size()メソッドの方が速いのではないかと思いました。そこで、Query.setFilter( "ratings.size()== 0")を試しましたが、次のエラーが発生します。式の解析中にサポートされていないメソッド:InvokeExpression {[PrimaryExpression {ratings}]。size()}

速度を上げる方法はありますか?

DATANUCLEUS エキスパートからの反応の編集:

これはGoogleのプラグインであり、彼らが責任を負っています(そして、彼らがそのメソッドを実装していないという事実が彼らの問題です...彼らのデータストアはコレクションのサイズを取得する方法を提供すると確信しています)。彼らのプラグインはDataNucleus1.1のみを使用しており、現在2.2を開発しているため、ご想像のとおり、GAE/J環境にはあまり時間がありません。

なぜグーグルは1.1バージョンを使用しているのですか?

0 投票する
4 に答える
1881 参照

java - JDO:PersistenceManagerはシングルトンですか?

基本的なこと:私は、埋め込まれたDB4Oデータベースに裏打ちされたDataNucleusを使用しています。

この簡単なテストを行う場合:

ファイルロック例外が発生します:

これは、がどのように機能するのかわからないことを教えてくれますPersistenceManagerPersistenceManagerFactoryデータをクエリまたは永続化する必要があるときはいつでも電話をかけただけでPersistenceManager、スレッドセーフなものが得られると思いました。

  • アプリケーション全体でPersistenceManagerをシングルトンにする必要がありますか?
  • JDO / DataNucleusでは、クエリと更新を実行する複数のスレッドはどのように機能しますか?
0 投票する
2 に答える
226 参照

java - @Unique は、NeoDatis を使用する DataNucleus では効果がありません

JDO / DataNucleus / NeoDatis データストアの使用

永続化可能なオブジェクトのフィールドに @Unique を追加しましたが、一意の制約に違反する複数のオブジェクトを作成できます。DataNucleus/NeoDatis のドキュメントでは、Unique フィールドがサポートされていることが示唆されています。

同じユーザー名で複数のオブジェクトを DB に追加しても問題ありません。

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

java - JDO/DataNucleus で Joda-Time DateTime オブジェクトをクエリできますか?

DataNucleus が org.joda.DateTime をサポートしていることがわかります

http://www.datanucleus.org/products/accessplatform_2_2/jdo/types.html

しかし、これは、このフィールドにインデックスを付けて、この時間フィールドに対して「where jodaTimeField > 昨日」などのクエリを実行できるということでしょうか?

それとも、シリアル化に頼らずに保存できるというだけですか?

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

java - JDO / DataNucleusの「アタッチされた」オブジェクトの意味は何ですか?

DataNucleusのドキュメントでは、分離されたオブジェクトと分離されることの意味について多くのことが説明されていますが、新しいユーザーにとっては、単純なものをスキップします。アタッチされるとはどういう意味ですか?

http://www.datanucleus.org/products/accessplatform_1_1/jdo/attach_detach.html

私が実行した場合:

私が正しく理解していれば、データベースに投稿されたばかりのオブジェクトのコピーを取り戻していますが、それがどのように特別であるかは少しあいまいです。

  • そのオブジェクトのフィールドの1つに変更を加えた場合、データベースは自動的に更新されますか?ドキュメントはこれを示唆しているようですが、特にそれを呼び出さないでください。
  • これが起こらないようにするには、「切り離す」必要がありますか?
  • これ(JDOのアタッチ/デタッチ機能)は、わかりやすい、アトミック、挿入、クエリ、更新、および削除に慣れているSQLとどのように異なりますか?