問題タブ [jdoql]
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 - トランザクション内の JDO クエリ: はいまたはいいえ?
データベースにクエリを実行するときは常にトランザクションを使用していましたが、最近、その理由が気になりました。
「読み取り専用」クエリでトランザクションを使用する/使用しないことの利点/欠点は何ですか?
トランザクション:
非トランザクション:
私を困惑させているのは、例えば Datanucleus JDO の実装です。トランザクションがデフォルトでオブジェクトをロックしない場合、そのようなトランザクションの利点は何ですか?
ドキュメントから: JDOQL を使用すると、クエリで見つかったオブジェクトをそのトランザクション中にロックするかどうかを制御できるため、その間に他のトランザクションがオブジェクトを更新できません: http://www.datanucleus.org/products/accessplatform_2_1/jdo/jdoql. html
java - 結合条件を明示的に書くことはできますか?
datanucleus で JDOQL を使用して、非キー列に結合条件を明示的に記述したいのですが、datanucleus で記述できますか?そうであれば、JDOQL を使用してどのように記述できますか?
java - 1 対 1 の関係での datanucleus-mongodb のパフォーマンスの問題
繰り返しますが、誰かが同じ問題を抱えているかどうか、または誰かがパフォーマンスを改善する方法を知っているかどうかを確認するために、このスレッドを作成しています。最初にシナリオを説明しましょう。たとえば、Product という名前の JDO エンティティがあります。その製品には、別のエンティティのフィールドがあります。単純なもの (例: 長い ID、文字列名、文字列値) と 1 つの日付です。製品の 10000 オブジェクトを作成しましたが、日付を使用して製品をクエリしようとすると、パフォーマンスは良好ですが、type.id == 12 を追加すると、パフォーマンスが 100 ミリ秒から 30 秒に低下します... Typeオブジェクトが製品に長いtypeIdを設定すると、同じクエリも高速になります...私が心配しているのはスケーラビリティです。構造を平坦化し、実際には接続されていないが追加のアプリケーション取得が必要な ID を使用する必要がありますか、または Product.Type のクエリのパフォーマンスを向上させる方法はありますか? 事前にどうもありがとうございました。
すでに fetchGroups を定義しようとしましたが、実際には機能しません...
私が実際にやりたかったのは、製品の ID を介して一種のマッピングを行うことですが、埋め込まれた注釈ではそれを行うことができませんでした...
それで、もう少し詳しく説明させてください。私は Reading という名前のクラスを持っています (1 つの Date timeStamp と Product p)。これはクエリを実行しています。フィルタが次のような場合:
これを行うと、クエリは100ミリ秒で実行されます
たとえば、30秒かかります...ログを見ましたが、製品のクエリがなければキャッシュから読み取るだけです。製品の句を追加すると、すべてのオブジェクトを取得しているようで、値の比較を開始すると思います...どうすればいいのかよくわかりません。おそらく、これらすべてのクラスを切断し、Reading クラスで String productID のように使用し始める必要があります。その後、すべてが再び高速になり始めます...しかし、実際には、接続はそうではありませんそこでは、アプリケーション層に実装されます...ありがとうございます...何かアドバイスはありますか?
生成されたクエリは次のようなものです。 .util.Date
java - マルチテーブル クエリ jdo 非所有関係
助けが必要です
私はgae、datastore、およびjdoを使用しています
国 1 - N 部門。部門 1 - N 州、所有されていない関係、州で国データを知っている
実体パイス:
エンティティ部門:
エンティティ州
国データにアクセスできるクエリ、アクセスされた地区 JDO
google-app-engine - 所有されていないエンティティ関係 jdo (gae) を永続化するときにプロパティを除外する
Google App Engine アプリには、次のモデルがあります。
@Unowned
ユーザーはメッセージから独立して存在できるため、モデルには送信者との関係があります。
私がやりたいのは、Message
オブジェクトを部分的なUser
オブジェクトで永続化することです (たとえば、ユーザー ID とユーザー名を保存することにのみ関心があります)。私のエンドポイント クラスではメッセージを問題なく保存していますが、関係に特定のユーザーのすべてのフィールドを含めない場合、ユーザー オブジェクトは不足しているフィールドで更新されます (たとえば、問題のユーザーはパスワードを持っていないなど)。 .)。元のオブジェクトを「壊す」ことなく、私が望むものを達成する最良の方法は何ですか?
PS 私のエンドポイントの方法はとてもシンプルです。基本的には、メッセージを呼び出すだけpm.makePersistent(message);
です (メソッド パラメーターとして指定)。
datanucleus - JDOQL名前付きクエリを使用して関連オブジェクトをフェッチする方法は?
DataNucleus 2.0.5 を使用しています。また、名前付き JDOQL クエリを実行して、関連するエンティティを含むオブジェクトを取得する必要があります。
私が持っているとしましょう
ここで、名前付きクエリを実行し、ロールでアカウントを取得したいと考えています。JPQL でjoin fetchと非常によく似た処理を行う必要がありますが、JDOQL の名前付きクエリを使用します。
java - JDOQL サブクエリ - クラス名 _ を解決できませんでした
私は JDOQL が初めてで、以下に問題があります。部門の平均給与を取得し、平均給与が特定の値よりも高い部門を選択しようとしています。
現在表示されているエラー メッセージ: