コンテナ管理のエンティティBeanを使用しているときに、Beanはコンテナによってデータベースに格納されていますか? これは、いくつかのコード文を使用してサーブレット内で制御することができますか?またはコンテナがこれを自動的に内部的に管理しますか?コンテナ管理エンティティBeanを使用しているときに、Beanがコンテナによってデータベースに格納されている場合
答えて
トランザクションがコミットされると、基本的にデータベースに格納されます。あなたは
<ejb-jar>
...
<assembly-descriptor>
...
<container-transaction>
<method>
<ejb-name>EmployeeRecord</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>EmployeeRecord</ejb-name>
<method-name>updatePhoneNumber</method-name>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
...
このa'la deplyment記述子にトランザクション境界でこれを制御することができCMPで
は、仕様からの抜粋であるhttp://download.oracle.com/otn-pub/jcp/ejb-2.1-fr-spec-oth-JSpec/ejb-2_1-fr-spec.pdf
は、ejb新しいトランザクションのメソッドを呼び出しますあなたの境界に応じてコンテナによって開始され、メソッドが正常に終了した場合、トランザクションはこれに応じてコミットされる可能性があります。たとえば、特定のメソッドがrequires-newで区切られている場合、はになります。これは独自のトランザクションを持っているためですが、requireで区切られ、実行中のトランザクションで呼び出された場合(たとえば、例えば、requireまたはrequire-newで区切られたセッションBeanメソッドから)、その囲みトランザクションがコミットされるときにコミットされます。または、失敗した場合、そのメソッド内で行われた変更はロールバックされるだけでなく、囲むメソッド呼び出し/トランザクション内で行われた変更も反映されます。
デプロイメント記述子ではネストされたトランザクションが許可されている可能性がありますが、実際にはデータベースエンジンが最後のトランザクションをどのように処理するかが重要です。多くの場合、rdbmsはネストされたトランザクションを実際にはサポートしませんが、代わりにトランザクションのセーブポイントを使用するため、ejbパースペクティブから再帰的に現れるものは実際にはデータベース内で「線形」に起こります。しかし、ほとんどのシナリオで結果は同じです。
また、トランザクション分離レベルを検討することも関係あります。
したがって、トランザクションがコミットされる前にサーバーがクラッシュした場合、エンティティの状態は失われますか? – seahorse
@seahorseはい、他の場所に保存されている場合を除きます。 (再):コンテナがクラッシュした時点でエンティティの状態がトランザクションによって更新されていた場合、エンティティの状態は最後にコミットされたトランザクションの状態に自動的にリセットされます。 –
Beanの状態は、トランザクションがコミットされたときにデータベースに保存されることが保証されています。通常、コンテナは、トランザクションがロールバックされた場合の不要な更新を回避するために、状態を保存する前にコミット時間まで待機します。または、状態が単一のトランザクションで複数回変更された場合。
この仕様では、エンティティBeanに対する変更が、同じトランザクションで実行されるEJBQLクエリによって表示されることを確認する必要があります。つまり、EJBQLファインダが実行される前に、変更がデータベースに保存されます。
クエリが変更と同じセッション/接続内で実行される場合、更新がまだコミットされていなくても、クエリはそのクエリに表示されます。そのセッション/トランザクションの外側に表示される内容は、トランザクション分離レベルによって異なります。 –
- 1. コンテナ名がコンテナによって既に使用されています - gitlab ci
- 2. EJB 3.1:コンテナで管理されていないリソースにBeanを注入できますか?
- 3. は、私はこのBeanを管理している管理対象Bean
- 4. データソースがコンテナの外で定義されている場合、トランザクションはコンテナによって管理できますか?
- 5. FragmentPagerAdapterが使用されている場合のコンテナは
- 6. Spring Beanコンテナのスコープとガベージコレクションについて
- 7. マネージドBeanは、私が管理Bean LoginBeanを持って
- 8. beanが存在しない場合、springコンテナに失敗しません。
- 9. 管理対象のBean(バッキングBean)またはエンティティBeanの使用方法
- 10. データベーステーブルに格納されているプロパティでSpring Beanを設定する方法
- 11. Windowsサービスキューがデータベースに格納されている場合のCPUが高い
- 12. クラスメソッドでBeanを使用している場合のNullPointerException
- 13. EJBエンティティBeanを使用してmysqlデータベースに接続するにはどうすればよいですか?
- 14. 私はコンテナとして以下を使用している場合、コンテナの幅/高さ
- 15. ページURLがデータベースに格納されている場合のMVCルーティング
- 16. @Configurationクラスの中でSpring XML設定されたbeanを使用して、別のbeanのfactory-beanとしてBeanを使用してください。
- 17. フレックスベーシスが0に設定されている場合、親コンテナに子が入っていないフレックス
- 18. は、データベースに格納されていない場合のレールモデルを示します。
- 19. Dockerコンテナの非ボリュームデータはどのように格納されていますか?
- 20. @Beanコントローラが@EnableMVCによって取得されない
- 21. @ManagedPropertyによって管理されたBeanプロパティが次のページで維持されない
- 22. boost :: reference_wrapperを使用してSTLコンテナに参照を格納できますか?
- 23. Wicketステートレスページを使用しているときにBeanが別のBeanに正しく挿入されていない
- 24. Jquery:ラジオボタンがチェックされている場合、クラスをコンテナに追加します。
- 25. f:eventを使用してViewScoped BeanにConversationScoped Beanを挿入する
- 26. PHP/SQL:データベースに格納されているHTMLエンティティを検索する
- 27. Outllookが管理者として実行されていない場合にOutlook Addinが無効にされる
- 28. セッションスコープ管理BeanとステートフルBean対httpsession
- 29. ndbエンティティがデータストアに格納されていることを確認します
- 30. SQLiteデータベースに格納されているデータでAlarmManagerを使用するには?
JPAエンティティについて、あるいは古いEJB2エンティティBeansについて話していますか? –
古いEJB2エンティティBean – seahorse