問題タブ [hibernate-entitymanager]

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 に答える
874 参照

hibernate - Hibernate EntityManager + JOTM: トランザクションは使用されません

JOTM と Hibernate EntityManager を統合して、EJB をトランザクション方式の環境でコンテナの外でテストしようとしています。

私のテストは次のようになります。

  1. JOTMを開始
  2. JOTM の UserTransaction を JNDI に入れる
  3. StandardXADataSource を作成して構成する
  4. DataSource を JNDI に入れる
  5. 休止状態を構成し、EMF を作成する
  6. EM を作成する
  7. 取引を開始する
  8. EMで取引に参加する
  9. エンティティを保存する
  10. 保存されていることを確認する
  11. トランザクションをロールバックする
  12. データベースでレコード数を確認する
  13. すべてを壊して

私のコードは次のようになります: http://pastebin.com/m22a9f6b

ログ出力は次のとおりです。 http://pastebin.com/m6da9383a

テストはステップ 12 (行 121) で失敗します。

ご覧のとおり、トランザクションをロールバックしたにもかかわらず、DB にレコードがあります。まったく使用されず、レコードがデータベースに到達したトランザクションのようです。

これがどのように発生する可能性があり、それを修正する方法はありますか?

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

hibernate - 1つのEntityManager(Hibernate)が複数の同時トランザクションに参加できますか?

1つのEntityManagerが複数の同時トランザクションにスムーズに参加できる方法はありますか?

まあ、それは同時ではありません。何かのようなもの:

  1. tx1を開始します
  2. tx1で何かをする
  3. tx2を開始します
  4. tx2で何かをする
  5. tx2をコミットする
  6. tx1に戻る
  7. tx1で何かをする
  8. tx1をコミットする

ステップが1つずつ続き、重複していません。

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

hibernate - Hibernate とのトランザクション競合を検出する方法は?

hibernate-entitymanager で Hibernate 2.6 を使用しています。オブジェクトで 2 つのトランザクションが競合する状況をキャッチして処理しようとしています。何が起こるかは次のとおりです。

2 つのスレッドが @Version フィールドを持つ単一のオブジェクトを更新しています。コミット競合を失ったスレッドは、フラッシュ時に StaleObjectStateException をログに記録します。例外はスローされず、ログに記録されるだけです。その時点で、トランザクションはロールバックのみとマークされていると思います。

その後、スレッドがコミットを実行しようとすると、RollbackException で失敗します。トランザクションがロールバックされる理由をコードで見つける方法が見つかりませんでした。

コードでそのような状況をキャッチして処理する方法はありますか? 基本的には StaleObjectStateException をキャッチしたいのですが、問題はスローされないことです。

更新:鳥瞰図から達成しようとしているのは次のとおりです。

JBoss で J2EE アプリケーションを実行しています。内部タイマーによって呼び出されるサービスと、UI から呼び出されるサービスがいくつかあります。また、重要なエンティティが 1 つあります。データの不整合が発生する可能性があるため、異なるスレッドがそのエンティティ クラスのオブジェクトを同時に更新できないようにする必要があります。これが、私が楽観的ロックを実装している理由です。

楽観的ロックの問題が発生した場合、私はこの状況を一般的に処理しようとしています。私はそれを非常に高いレベルでキャッチし、有効なユーザー メッセージを表示したいと考えています (私の場合、最高レベルは RestEasy の ExceptionMapper です)。問題は、RollbackException をキャッチした時点ですでに手遅れであることです。

手動でフラッシュしません。ほとんどの EJB は CMT を使用しており、セッションは自動的にフラッシュされます。

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

mysql - hibernate、mysql、glassfish v3、および JTA データソース

mysql と glassfish で hibernate エンティティ マネージャーを使用しようとしています。JTA データソースを使用しようとすると、次のエラーが発生します。

これが私のpersistence.xmlの設定方法です

ただし、非 jta データソースを構成すると、正常に動作します

それはすべてうまくいっていますが、私は本当に使いたいです:

それ以外の:

休止状態の構成で何か不足していますか、それとも JTA データソースを使用することは可能ですか?

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

hibernate - Spring、Hibernate、EntityManager、およびクラスの継承

私はSpringとHibernateにかなり慣れていません。私たちのチームでは、プレゼンテーション レイヤーに Struts 2 を使用し、その下に Spring 3 と Hibernate 3 (注釈付き) を使用して Web アプリケーションを構築しています。CRUD 操作にDAO を使用するかどうか、および を使用するか、または を使用するかについては、まだ議論Session中です。EntityManagerどちらが優れているかという問題はさておき、 を使用して別の問題に遭遇しましたEntityManager

Service私の目標は、保存、削除、ID による検索、およびクラスによるすべての検索の 4 つの基本操作を公開する抽象 (ジェネリック) を作成することです。他のサービスはこれを継承し、カスタムの検索または更新を実装するだけです (これは将来変更される可能性があります)。問題は、注釈付きの をどこに置くべきかわからないことですEntityManager。私の、つまりPerson の親からActionを継承する Bobからサービスで save() を呼び出すと、サービス パーソンが呼び出されておらず、注釈が解析されていないため、システムは の注入に失敗することを理解しています。save()ServiceEntityManager@PersistenceContext

この問題を回避する方法はありますか? 簡単な操作に必要なコードの量を削減できるため、サービスに継承を使用したいと考えています。

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

hibernate - JPA2 + Hibernate + オーダーバイ

( Hibernate と JPA2 Criteria Builder を使用して) エンティティ メンバーではなくメソッドの結果で注文することは可能ですか?

私が達成したいのは、の結果による順序ですgetEvaluatedValue()。それは可能ですか?

@Formular は使っていませんが、

私はプレーンな JPA2 ですが、確かに動的データで注文する機会はありません。しかし、if-else などのステートメント (QueryBuilder で定義) を使用して order-by ブロックを指定することは許されるかもしれませんね。

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

jpa - トランザクション内の複数のエンティティ マネージャ

JPA EntityManager API を使用して、あるデータベースから別のデータベースにデータを移動するアプリケーションを作成しています。私の質問は: 1. 1 つのトランザクションで複数のエンティティ マネージャーを使用できますか? 2. 1 つのデータベースからエンティティを読み取り、それを別のデータベースに永続化できますか? どのような問題が発生する可能性がありますか?

0 投票する
3 に答える
8569 参照

hibernate - 宣言されたメタモデル属性は正常に機能しますが、継承されたメタモデル属性は NULL です。なんで?

次のテストを実行できません:-

行で NullPointerException をスローしproject.get(Project_.lifeCycle)ます。なんで?

PersistenceEntityBase.java

}

Project.java

}

EntityLifeCycleImpl.java

}

PersistentEntityBase_.java (Hibernate Metamodel Generator を使用して生成)

Project_.java

EntityLifeCycleImpl_.java

persistence.xml (関連部分のみ)

編集: hibernate-entitymanager.3.6.0.Final と hibernate-jpamodelgen.1.0.0.Final を使用します。

EDIT 2 @Pascal
Hibernate EM 3.6.0.Final では、レベル@Embeddedで注釈付きフィールドを定義できると思い@Entityますが、レベルでそのようなフィールドを拒否し@MappedSuperclassます。あなたは何を言っていますか?

ここに「ファイル アップロード オプション」が表示されないため、esnips アカウントに TestCase をアップロードしました。maven ベースのプロジェクトをダウンロードSingularAttributeTest.javaして実行します。そして、コンソール出力をチェックアウトします

「 Download embedded-singular-attribute.zip 」リンクをクリックして、ダウンロード マネージャーをインストールせずにファイルをダウンロードします。( をクリックDownload link with Green arrowすると、ダウンロードマネージャーをインストールする必要があります!!)

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

java - Spring + EntityManagerFactory+Hibernateリスナー+インジェクション

簡単な質問があります。@Ressourceまたは@Autowiredを介して依存性注入をHibernateEventlistenerに追加することは可能ですか?

entitymanagerfactoryの構成を示します。

現時点では、jpa.propertiesを介してリスナーを登録しています。

しかし、この場合、リスナーにスプリングインジェクションはありません。解決策を見つけましたが、これはentitymanagerではなくsessionFactoryを使用します。または、コンテキストでsessionfactoryを変更できますか?うまくいけば、誰かがこの問題に対処するための素晴らしいアイデアや解決策を持っています!

本当にありがとう!

0 投票する
5 に答える
135544 参照

java - entity-manager がある場合、セッション オブジェクトを取得するにはどうすればよいですか?

私は持っている

entitymanager を使用している場合、セッションを取得するにはどうすればよいですか? または、切り離された基準から結果を取得するにはどうすればよいですか?