問題タブ [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.
mysql - Maven Hibernate with Guice-Persist
Mavenを使用して、Guice-persistを使用してデータオブジェクトをEclipseからMySQLにマップするGWT(正確にはGWT-Platform)プロジェクトを編成しようとしています。運が悪い。
GWTP基本サンプルのMaven構成に基づいてコードを作成しました。これにより、作業を開始できました。Hibernateの依存関係をpom.xml
ファイルに追加しているので、ファイルを正常に実行できないようです。現在、次のエラーが発生しています。
インジェクターをセットアップするときに、次のようにPersistModuleを作成します。
私の永続ファイルは次のようになります。
そして私のpom.xml
ファイルは以下の通りです:
ご覧のとおり、ユニットの名前は一致しています。さらに、プロジェクトpersistance.xml
のディレクトリにファイルを保存しています。WARファイルのベースとしてディレクトリとに対応するディレクトリをsrc/main/webapp/META-INF
使用してプロジェクトを実行しようとしましたが、どちらもこのエラーを解決できません。/src/main/webapp/
/target/
どんなポインタでも大歓迎です!私はこれを2日間見つめています。
java - トランザクションを開始せずに Hibernate 経由で MySQL データベースに対してクエリを実行すると、どのような影響がありますか?
JPA/Hibernateを介したクエリとストレートSQLが機能しているように見える読み取り専用操作のために、まだトランザクションを開始していないコードがあるようです。hibernate/jpa セッションはフレームワークによって開かれていましたが、レガシー コードのいくつかの場所で、トランザクションが開かれていないことがわかりました。
結局、EntityManager.persist と EntityManager.merge を使用しない限り、コードは通常実行されるようです。ただし、たまに (おそらく 1/10) 回、サーブレット コンテナーがこのエラーで失敗します...
私が知る限り、この問題は、クエリが行われる前にトランザクションが開始されていない、アプリケーション コードのわずかな箇所で発生します。この動作を引き起こすのは、実行中の非トランザクションクエリである可能性があると考えている人はいますか?
参考までに、ここに私たちのスタックがあります...
-Guice -Guice-Persist -Guice-Servlet -MySql 5.1.63 -Hibernate/C3P0 4.1.4.Final -Jetty
jpa - Google Guiceでhibernate.ejb.interceptorにサービスを注入する方法は?
Google Guice を使用して事前定義されたインターセプターにサービスを注入する際に問題があります。
私がやろうとしているのはemptyinterceptor
、エンティティの変更を傍受するために使用することです。インターセプター自体は正常に動作しますが、問題は、サービスを注入する方法がわからないことです。インジェクション自体は、アプリケーション全体で正常に機能します。
persistence.xml
どうやって注射しようとしているのか
JpaPersistModule の開始方法
サービスの開始方法
java - EJB オーバーライド JPA javax.persistence
私は Java EE 分野にかなり慣れていないので、ここで私の無知を許してください。ORM を処理するために guice-persist と hibernate を使用しているアプリケーションを継承しました。
を使用しようとしてCriteriaQuery
いますが、jaxax.persistence.EntityManager
必要な( JPA からの) インターフェースではなく、このインターフェース (EJB からの) のように見えるため、 を使用できません。createQuery(CriteriaQuery)
これはMavenプロジェクトであり、このEJBコードがどこから来ているのかわかりません.Guice-PersistとHibernateから見ることができるものはすべて、EJBではなくJPAインターフェースを示しているため、このEJBパッケージがどこにあるかわかりませんから来ています。
ここに何かアイデアはありますか?プロジェクトに EJB を導入している Maven への依存関係が間違っているのでしょうか? それとも、永続化レイヤーを誤解していて、アプリケーションで実際に EJB を必要としているように思えますか?
必要な情報をお知らせいただければ、追加情報を掲載させていただきます。
編集:
よく調べてみると、「リモート」プロジェクトに不正な形式の pom.xml があるのではないかと疑い始めています。以下の依存関係ツリー。
RemoteR は、自律的に実行される CXF SOAP Web サービスであると想定されています。このプロジェクトで必要なのは、他の場所でホストされている Web サービスにリクエストを送信できる「クライアント」部分だけです。したがって、現在のプロジェクトで春の依存関係を見ると、ここで JPA の衝突が発生している可能性があると思われます。
jpa - GuiceJPA-「この接続は閉じられました。」エラー
DBがアイドル状態の接続をドロップするか、DBがダウンしてバックアップした後、Webアプリケーションで次のエラーが発生します。
これが始まると私は
しかしその後はそれだけです:
問題は次のとおりです。testOnBorrowを設定したので、開いている接続のみを取得することを期待します。
それが役立つ場合:プールには通常、良好な接続と不良な接続が混在しており、問題は時間の経過とともに解消されるようですが、サーバーを12時間以上実行しても、不良な接続が返されました。再起動後、すべてが正常に機能しています(しばらくの間)。
問題をもう少しデバッグしましたが、プールが不正な接続を返しているようです。たとえば、DBですべての接続を切断した後、次のようになります。
そして通常のもの-殺された接続はプールから返されます。問題は、それはアプリケーションの問題ですか?
JMX経由でプールをパージしようとしましたが、効果がないようです。もう1つの奇妙なことは、アプリが明らかに何もしていないにもかかわらず(スレッドダンプを介してチェック)、JMXBeanが7つのアクティブな接続と0つのアイドルな接続を示していることです。DBアクセスを必要とする要求を実行すると、すぐに応答が返されます(使用可能なアイドル接続がないにもかかわらず)が、JMXはその後7つのアクティブ接続と0のアイドル接続を示します。
PS。たぶん私は明らかな何かを見逃しています、そしてこれは私の側の接続管理の問題ですか?私はpersistence.xmlを介して構成されたJPAEntityManagerを使用しているので、何か間違ったことをしていて、使用後に接続が適切に閉じられない(戻されない)可能性がありますか?
java - Guice Persist を JTA / bitronix と一緒に使用する際の問題
すでに JPA と guice-persist を使用している既存の j2se プロジェクトがあります。ここで、JMS 機能を追加したいので、2 フェーズ コミットと JTA の要求があります。コンテナーがないため (Spring など)、bitronix トランザクション マネージャーを使用します。
私の理解では、最初にやらなければならないことは、永続化ユニットの transaction-type を から に変更することですRESSOURCE-LOCAL
。JTA
これは、データベース トランザクションがcommitではなくcommitに投票するようにするためです。コミットは、すべての投票を収集した後、フェーズ 2 で行われます。
guice-persist@Transactional
では、単一のトランザクションで実行する必要があるメソッドにアノテーションを使用します。はEnitiyManagerFactory を提供し、注釈付きメソッドをラップするJPAPersistModule
ように、guice-persist 内部クラスに使用されます。JpaLocalTxnInterceptor
今、私は次のような例外を受け取ります
提供されたエンティティマネージャーのJpaLocalTxnInterceptor
呼び出しのため。getTransaction()
現時点では、かなり行き詰まっています。guice-persist を JTA と一緒に使用する方法はありますか? それともプロジェクトから guice-persist を削除する必要がありますか? または、(Bitronix を使用して) JTA を実行したい場合、guice-persist に代わるものはありますか?
java - Hibernate 4 connection.autocommit=false は無視されました
Tomcat 6でJava、hibernate 4、guice 3、guice-persist 3を使用するアプリケーションがあります
connection.autocommit は、hibernate.cfg.xml ファイルで false に設定されています。
しかし、デプロイ時に、ログファイルは autocommit が true に設定されていることを示しています:
hibernate が autocommit プロパティを無視するのはなぜですか? そして、私たちは気にする必要がありますか?(私たちのテストでは、正しく注釈が付けられたメソッドの例外がロールバックを行うことが示されているため、すべて問題ないようです)
java - JPAとGuice-persist:永続的に開かれた接続の問題?
Hibernate、c3p0、Guice、Guice-persistを使用すると、トランザクション後にデータへの接続がプールに解放されないという奇妙な問題が発生します。
これは、 JpaPersistServiceが実行される方法に関連しているようで、EntityManagerをthreadLocal変数にキャッシュします。
私の質問は次のとおりです。
- guice-persistを削除し、これを新しいentityManagerを作成するものに置き換えて、必要なたびに閉じる必要がありますか(ここで提案されています)?
- または、entityManagerをキャッシュするのが方法であり、他の何かで問題を修正する必要がありますか?
(私たちの問題:1)従来の8時間のタイムアウト後にmysqldによってmysql接続が切断されたため、entityManagerは使用できなくなりました。c3p0のキープアライブを有効にすることで解決できますが、アプリケーションが長期間使用されない場合があるため、無駄なアクティブな接続を維持しないようにします。2)各EntityManagerは何らかのキャッシュを実行しているようであり、エンティティはentityManager間で一貫性がありません。それを解決する方法を見ていませんでした)
java - JpaPersistModule を構成するにはどうすればよいですか?
これが私の状況です。基本的なJPAプロパティを持つ「persistence.xml」があります。また、JpaPersistModule に挿入する必要がある追加のプロパティもいくつかあります。これらのプロパティ (接続文字列など) は外部コンポーネントから取得され、それら自体がいくつかの外部 Guice モジュールによってバインドされます。
これは明らかな問題につながります.JpaPersistModuleに渡すjava.util.Propertiesクラスのインスタンスを作成できません.バインディングが設定された時点でそれらのプロパティがわからないからです. この問題に対処する最善の方法は何でしょうか?
PSセッターを介して明示的にプロパティをguiceモジュールに渡すという全体的な考えは、私には奇妙に思えます。男、これは依存性注入ですね。