問題タブ [jdo]
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 - Hibernate vs JPA vs JDO - それぞれの長所と短所?
私は概念としての ORM に精通しており、数年前に .NET プロジェクトで nHibernate を使用したことさえあります。しかし、私は Java での ORM の話題についていけず、これらのツールを使用する機会がありませんでした。
しかし、一連のレガシー Web サービスから離れようとして、アプリケーションの 1 つにいくつかの ORM ツールを使い始める機会があるかもしれません。
JPA 仕様、Hibernate ライブラリ自体で得られるもの、および JDO が提供するものとの違いを説明するのに苦労しています。
したがって、この質問が少し自由回答であることは理解していますが、次の点について意見を求めたいと思っていました。
- それぞれの長所と短所は何ですか?
- 新しいプロジェクトにはどれを提案しますか?
- あるフレームワークと他のフレームワークを使用することが理にかなっている特定の条件はありますか?
java - JDO/DataNucleus を使用して java.util.Properties をシリアル化されたオブジェクトとして永続化します
Google AppEngine のドキュメントによると、JDO を使用してシリアライズ可能なオブジェクトを永続化できるとのことです。
しかし、プロパティで使用すると
私は得る
DataNucleus Enhancer (バージョン 1.1.0) : クラスの強化
クラス「ServletRegistration」のフィールド「initProps」はマップとして定義されていますが、キー タイプが指定されていません。
追加の注釈でそれを修正できますか?
java - DataNucleus: トランザクションのコミット時にアクションを自動的に実行するにはどうすればよいですか?
次の永続構造を持つ DataNucleus を使用するアプリケーションを検討してください。
created (Date) とlastUpdate (Date)のような 2 つの属性を持つクラスがあります。このクラスのオブジェクトがコミットされるときに、これらの属性に適切な値を自動的に入力するにはどうすればよいでしょうか? 適切な値は、オブジェクトがデータベースに挿入されたときに createed と lastUpdate の両方を現在の時刻に設定し、変更されたときにlastUpdateを更新することです。
java - JPOX JDO および Castor JDO と Hibernate 永続化の比較
これらのフレームワーク (JPOX JDO および Cater JDO) は、Hibernate と同様の原理で機能しますか? 構成データに加えて、リフレクションとジェネリックの組み合わせを使用していますか? 主なアーキテクチャ上の違いは何ですか?
hibernate - Jdo / Hibernateの分離オブジェクト-とにかくそれらは何のためにありますか?
Webアプリケーションのコンテキスト内でデタッチされたオブジェクトを使用する利点は何ですか?AFAIKは、オブジェクトがトランザクションの「字句」スコープよりも長生きする場合にのみ役立ちますが、通常、トランザクションが終了したWebアプリでは、オブジェクトをビューレイヤーに送信するだけで、再アタッチされません。
私の理解の限りでは、オブジェクトのデタッチは、後でそれをマージ/再アタッチする場合にのみ役立ちます。オブジェクトをDBに直接更新するだけの場合と比較して、これの利点はわかりません。
サンプルコードは大歓迎です。
編集:明確にするために、私はデタッチされたオブジェクトとトランジェント(たとえばdbに来たが、後で再アタッチできないオブジェクト)の利点を理解しようとしています。
google-app-engine - *User* タイプのクエリに関する Google データストアの問題
この質問で、次のようにGoogleデータストアにクエリを実行してユーザー(com.google.appengine.api.users.User)ごとに取得する問題を解決しました:
上記は問題なく動作しますが、少しいじった後、より複雑なクエリを作成する必要があるため、この構文はあまり実用的ではないことに気付きました.通常、フィルタは文字列変数として渡されますが、簡単にするためにインラインで作成されています):
field = 'value'
この構文がJDOQLでサポートされていて、他のフィールド (文字列型と列挙型) で正常に機能する場合でも、明らかにこれは機能しません。もう1つの奇妙な点は、アプリエンジンダッシュボードのデータビューアーを見ると、「作成者」フィールドがタイプユーザーとして保存されていますが、値は「user@gmail.com」であり、パラメーターとして設定すると再び(上記の場合は正常に動作します)パラメーターを文字列として宣言してから、単純なシリアル化されたユーザー(ユーザー)のインスタンスを渡します(toString()
推測します)。
誰でもアイデアはありますか?
java - 複数のパラメーターで JDO クエリを動的に構築する方法
次のように、JDO 構文を使用して複数のパラメーターを簡単に照会できます。
フィルターを使用してプログラムで文字列を作成するのは簡単です。
params 宣言を含む別の文字列:
即時ではないのは、どのパラメーターがフィルターに含まれているか (および宣言されているか) に応じてクエリを実行するための戦略を考え出すことです。クエリ実行の可能な順列 (すべてのパラメーター、最初のみ、2 番目のみ、1 番目と 2 番目など...):
これは一般的なタスクであり、他の誰かがより一般的で効率的な方法でそれを行っていると確信しています。
なにか提案を?
java - Java AppEngine: JDO または JPA、どのように選択するか?
Google AppEngine で実行される Grails アプリケーションに JDO または JPA を選択することの長所と短所