問題タブ [guice-persist]
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.
guice - guice-persistは@Finderアノテーションをサポートしていますか
Guice-persistは、ファインダーメソッドの概念を持つwarp-persistに基づいていました。
http://code.google.com/p/google-guice/wiki/GuicePersist
に基づいていた
http://code.google.com/p/warp-persist/
guice-persistにはwarp-persistと同様の@Finderのアノテーションがあることがわかりますが、ドキュメントはありません。
java - Hibernate/JPAが起動時にDBスキーマに対して検証されない
何らかの理由で、Hibernateはエンティティを存在しないテーブルにマッピングするなどの問題をキャッチしていません。私のpersistence.xmlファイルは次のようになります...
hibernate - Guice を使用してプロパティを XML ファイルに挿入/解決し、persistence.xml ファイルを構成する方法は?
私は guice-persist を使用しています。Spring で行うように、Java プロパティ ファイルから persistence.xml ファイルにプロパティを挿入またはリゾルバする方法があるかどうかを知りたいです。例えば:
そうでない場合、プロパティ ファイルからこのプロパティを挿入するために、guice-persist ライブラリを使用して EntityManager を構成するにはどうすればよいですか?
ありがとう!
transactions - GuiceとJerseyを使用してGETリクエストで読み取り専用トランザクションを構成するには?
Guice、Guice Persist、Hibernate、Jersey を使用しています。@GET アノテーションが付けられたメソッドを除いて、すべてのリソース メソッドに @Transactional アノテーションが付けられています。これは、transaction-per-request スコープを構成する正しい方法ですか?
jpa - Guice Persist (Guice 3.0) を Wicket 1.5 で使用するにはどうすればよいですか?
Guice Persist (Guice 3.0) を Wicket 1.5 で使用する方法を知りたいです。
これを行う方法を説明する「hello world」タイプの例を見つけることができませんでした。そのような素晴らしい例をリンク/提供できれば、答えとして喜んで受け入れられます。
それまでの間、「hello world」タイプの例を自分で作成して、進行中のコードをここに投稿します。コードを適切に機能させるためのヘルプも回答として受け入れられます。
依存性注入に Guice を使用する、Wicket Examplesの 'hello world' guice の例と非常によく似た単純な wicket プロジェクトをセットアップしました。このプロジェクトを拡張して、「Hello World」の代わりに JPA と Guice Persist も使用するようにしたいと考えています。データベースからユーザーを取得して、そのユーザー名を表示したいと考えています。Guice persistに関する Guice wiki の指示を使用して、これを達成しようとしています。
更新:だから、ちょっとうまくいった。このWebApplication.init()
ようにServetModuleをgetComponentInstantiationListeners().add(new GuiceComponentInjector(this, new MyServletModule()));
挿入し、ウィケットフィルターの前に、web.xmlファイルの上部にGuiceFilterも追加しました。
アプリケーションを実行するとすべてが機能しますが、廃止されたメソッドの使用に関するこの警告が表示されます。これをさらに調べます。
警告: 非推奨の API を使用しようとしています (具体的には、熱心に作成されたシングルトン内で @Inject ServletContext を使用しようとしています。後方互換性のためにこれを許可していますが、複数のインジェクター (ServletModule を使用) がある場合、予期しない動作が発生する可能性があることに注意してください)。 ) 同じ JVM で実行されています。詳細については、 http: //code.google.com/p/google-guice/wiki/Servlets にある Guice のドキュメントを参照して ください。
ディレクトリツリー
WicketApplication.java
ホームページ.java
ホームページ.html
MyServletModule.java
IService.java
JpaService.java
ユーザー.java
web.xml
persistence.xml
pom.xml
entitymanager - guice-persist によるセッションの自動クリア
私は、guice-persist の下で tomcat と hibernate で実行されている guice-servlet を持つ環境を使用しています。私が遭遇した問題は、1 つのリクエストで em.getReference() を使用すると、読み込まれたプロキシ オブジェクトがエンティティ マネージャーのキャッシュに残り、DB からオブジェクトが完全に読み込まれると予想される別のリクエストに表示される可能性があることです。
以前は、デフォルトの動作である EJB3 環境で休止状態を使用していました。エンティティ マネージャのキャッシュは、新しいリクエストごとにクリアされます。guice-persist がリクエストごとにセッションをクリアする方が安全な動作ではないでしょうか? または、少なくとも JpaPersistModule の設定として指定しますか?
EJB3 の動作を担当する hibernate SessionImpl "autoClear" には特別なフラグがあります。新しいエンティティ マネージャーが JpaPersistModule によって作成されているときにフラグを有効にする方法はありますか?
java - 現在のguice-persist UnitOfWorkをコミットする方法は?
UnitOfWork
ハイバネートの上に Guice-persist を使用してバックグラウンド タスク メソッド (Quartz が運用) を使用しています。バックグラウンド タスクは、現在のトランザクションをタスクの途中でコミットする必要があるサービスを呼び出し、別のトランザクションを続行します。現在の UnitOfWork をコミットして新しいものを作成するにはどうすればよいですか?
UnitOfWork
このサービスも Guice によって管理されますが、シングルトンであり、そのまま呼び出し元にアクセスすることはできません。
理想的には、サービス署名を変更したくありません。回避策は、呼び出し元が にUnitOfWork
パラメーターとして2 つを与えることfoo()
ですが、これは少しハッキングされているようです。
編集:将来の仲間の読者が使いやすくするために、ColinD によって提供されたソリューションの私の実装を次に示します。これは法案にうまく適合します:
hibernate - JPA2 + Hibernate + Guice-persist:バージョンの動作
私はHibernate3.6Final、Guice-persist、JPA2を使用しています。
とても良いです、私はすべてを構成しました、そして私の豆は@Version private Long version;
ゲッターとセッターで、を持っています。
すべてのフィールドにequalsとハッシュコードを実装しました。
私のdaosaveメソッドは:
しかし、私が次のようなことをした場合:
次に、名前を変更してもう一度保存しようとすると、「StaleObjectstateException行が...によって更新または削除されました」というメッセージが表示されます...
オブジェクトを保存するときにエンティティマネージャにバージョンを更新させるために何をしなければならないのか、そしてなぜpersistがこれを行わなかったのかを知りたいです。
前もって感謝します。
gwt - Guice-Persist: クローズされた EntityManager で操作を実行しようとしています
永続化用と webapp 自体 (gwt) 用の 2 つのモジュールを持つ maven によって管理されるアプリがあります。
永続化モジュールでの私のテストは魅力のように機能しますが、webapp で同じメソッドを複数回実行すると、java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManager.
.
guice-persist を使用してエンティティ マネージャーを DAO に挿入し、すべての DAO メソッドに@Transactional
注釈を付けています。
私の webapp では、次のように記述します。 public class ScuvServletModule extends ServletModule {
を削除するとPersistFilter
、動作しますが、トランザクションクローズ例外またはそのようなものがランダムにスローされます。
何か助けはありますか?
hibernate - Guice-Persist-「このスレッドで作業はすでに開始されています。その間にend()をバランスよく呼び出すことなく、UnitOfWork.begin()を2回呼び出したようです。」
私たちのアプリケーションは、Guice-PersistとGuice-Servletを広範囲に使用するJava-GWTアプリケーションです。Warp-persistが最初に使用したものと同様のGuice-Persistのsession-per-HTTPRequest機能の使用で問題が発生したことはありません。
ドキュメントに従って、PersistFilterクラスを介してWebアプリをフィルタリングしています。ここのGuiceドキュメントによると、persistence.xmlファイルにはtransaction-type="RESOURCE_LOCAL"があります。
奇妙な理由で、PROD環境にエラーが表示されています
「このスレッドでの作業はすでに開始されています。その間にend()をバランスよく呼び出すことなく、UnitOfWork.begin()を2回呼び出したようです。」
ネストされた作業単位がGuice-Persistでサポートされていないという問題があるようです。リンク
また、最近、休止状態の3.6.3.Finalから4.1.4.Finalに移行しました。彼がguiceと何らかの非互換性を持っているかどうかはわかりません...
この時点で、なぜこれが起こるのかについて、私たちは完全に暗闇の中にいます。