問題タブ [transactional]

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 投票する
3 に答える
2263 参照

hibernate - アノテーションを介してHibernateセッションが期限切れにならないようにしますか?-ロールのコレクションを遅延初期化できませんでした

返されたオブジェクトのメンバーであるbag/Collectionにアクセスしようとすると、「ロールのコレクションを遅延初期化できませんでした」という例外をスローする休止状態のDAOがあります。

例外をスローする問題の範囲を理解しています。Hibernateは私のオブジェクトを返し、コレクションの場合はプロキシオブジェクトを返します。呼び出し元で、これらのプロキシオブジェクトにアクセスしようとすると、休止状態のセッションが期限切れになったため、この例外がスローされます。

私が知りたいのは、アノテーションを使用してセッションが期限切れにならないようにするにはどうすればよいですか?出来ますか?

たとえば、私の呼び出しメソッドが次の場合:

アノテーションを使用してこの例外を防ぐにはどうすればよいですか?解決策の1つは、コールバックを介してHibernateセッションを拡張することです。これは、擬似コードでは次のようになります。

しかし、これは、コレクションにアクセスする必要のあるすべての関数に含まれているため、かなり繰り返しのようです。そこに@Transactionalアノテーションをたたくだけで、それを実行する方法はありませんか?のように:

これを私に説明するのにあなたの助けに感謝します。

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

hibernate - @TransactionalSpringJunitテストがロールバックを実行していない

daoレイヤーのJUnitテストケースを設定しようとしています。ただし、テストデータを実際にDBに永続化する必要はありません。

だから私はそれをトランザクションで行い、すべてのテストの後にロールバックするべきだと思いました。これにより、次のデータソース設定が残ります。

テスト対象のdaoクラスは次のように設定されます。

実際の永続化ジョブうまく機能します。ただし、意図したロールバックは実行されません。

TransactionalTextExecutionListenerは、次のように定義されています。

自動配線されたメンバーを使用して、daoメソッドにアクセスしています。

TL; DR

JUnitテストケースは、ロールバックが実行されたと述べているにもかかわらず、テストデータを保持しています。

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

java - aop:afterアドバイスも利用するメソッドでspringの@Transactionalを使用する

私はすでに同様の質問があるかどうかを確認しようとしていましたが、それを見つけることができませんでした、ここにあります。

単一のBOがリフレクションを使用して多くのDAOへのメソッド呼び出しを行うレガシーコードがあります。簡単にするためにコードを変更しました。

問題は、要件が変更されたため、EndpointData1DAOでinsertData()が呼び出されたときに、EndpointData2DAOのinsertDataも呼び出される必要があることです。

EndpointData2DAOをEndpointData1DAOのメンバーとして追加するだけでもかまいませんが、SRPに著しく違反し、見苦しくなります。

だから私はアノテーション@ExecuteAfter(clazz = EndpointData2DAO.class、method = "insertData")を書きました。これは、EndpointData2DAOのインスタンスを取得し、アノテーションを付けるクラスのメソッドが実行された後、aop:afterを使用してinsertData()を呼び出します。 、与えられたように

1 2は、machoBO.handleEverthing( "Data1");を呼び出すと出力されます。

今私の質問は、EndpointData1DAOとEndpointData2DAOのinsertData()は同じ物理トランザクションにあるのでしょうか?つまり、EndpointData2DAOのinsertData()のランタイム例外は、EndpointData1DAOのinsertData()によって挿入されたデータをロールバックしますか?

よろしくお願いします〜!!

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

java - @Transactionalがロールバックで「トランザクションが正常に開始されませんでした」をスローします

次のサービスメソッドにトランザクションとして注釈を付けました。

ただし、例外が内部でスローされた場合

activateCustomer(顧客、ブール値、ブール値)

メソッド、次のエラーが発生します:

これは私のapplication-context.xmlからの抜粋です:

なぜこれが起こるのか、私にはよくわかりません。助けていただければ、どうもありがとうございました。

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

hibernate - 永続化されていないエンティティ-Spring+Hibernate + JPA

Spring + Hibernate + JPAを使用していますが、エンティティをデータベースに永続化できない状況があります。@Transactionalで注釈が付けられたサービスクラスを設定しました。挿入されたEntityManagerを含むDAOを使用します。サービスオブジェクトで関数を呼び出すと、DAOが実行している読み取りの選択が多数表示されますが、DAOによって発行されたマージと削除の結果として更新/削除が行われません。確かに私の設定に何か問題がありますが、私はそれを見ることができません。

persistence.xml

config.xml

AccountService.java

UserDAOImpl.java

AccountActivationController.java

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

spring-mvc - Liferayトランザクションのハウツー

Liferayフォーラムからコピーしています-2週間で回答が得られませんでした。 http://www.liferay.com/community/forums/-/message_boards/message/9384663

ドキュメント/ブログのLiferayトランザクションの方法を探しています。

Liferay 6.0.6 PostgreSQL

私はjax-wsWebサービスに接続しています。私はLiferayサービスのみを使用しています。

例:ドキュメントを挿入してタグを付ける

トランザクションを設定する必要があります。

私のクラスの注釈

@Transactionalはliferayの1つです

メソッドには、

WSはうまく機能しますが、トランザクションはありません-ドキュメントが作成され、NoSuchEntryExceptionドキュメントがLiferayに残ります。

以下のフォーラムスレッドに基づいて試行されました: http ://www.liferay.com/community/forums/-/message_boards/message/9019161

フックスプリング構成では何もしませんでした。

分離などを変更しようとしましたが成功しませんでした。

ガイドはいますか?

どうもありがとうございます

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

tfs - Team Foundation Serverのバックアップ計画ウィザードでのトランザクションバックアップ間隔とはどういう意味ですか?

現在、TeamFoundationServerのバックアップ計画を立てています。TFS用のPowerToolsをダウンロードし、そのパックに含まれているバックアッププランウィザードを使用しています。私は今、バックアップのスケジュール方法を決定することになっている段階にあり、セットアップに何を選択すればよいかわかりません。

トランザクションバックアップ間隔を除いて、すべてが何を意味するのかわかります。 TFSのバックアップ計画ウィザードのスクリーンショット、スケジュールの選択

良いスケジュールの提案をいただければ幸いです。私が達成したいのは、可能であれば、いくつかのバージョンを復元し、それでも振り返ることができることです。必要な最小限のバックアップは最新バージョンです。

以前に「バックアップ保持日​​数」を選択して30に設定したことを追加することが重要かもしれません。

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

unit-testing - Spring Framework - 単体テストの設計

私は、Spring ユニット テスト、特にトランザクション ユニット テストに関する少しの議論を開始するために書いています。

現在、さまざまなクラスに約 441 個のテストがあり、次のように注釈が付けられています。

各テスト クラスには、独自のテスト コンテキストがあります。

個々のテスト クラスまたは個々のパッケージを実行すると、テストが正常に実行されるという問題に直面しています。

ただし、maven または Hudson 統合などの同様のものを使用して、すべてのテスト (現在は 400 以上) を実行するようにスケールアップしたい場合。

ある時点に到達すると、Java GC 制限を超えたエラーが発生し始めます。

これは、メモリ制限を増やしたり、警告をオフにしたりする必要があるというよりも、テスト計画の設計によるものだと感じています。

誰かが自分の経験と、同様の問題を解決した方法を共有できますか?

エグジー

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

hibernate - ネストされた @Transactional

春に@Transactionalアノテーション付きメソッドをネストすることは可能ですか? 次のようなことを考えてみましょう:

このような場合、 b() でロールバックし、 a() でロールバックするとどうなりますか?

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

spring - @Transactional Junit テストでのドメイン オブジェクトからの双方向関連付けの使用

@Transactional JUnit テストをセットアップしており、いくつかのテスト データをデータベースに保持し、関連付けが正しいかどうかもテストしたいと考えています。ただし、アソシエーションをテストする場合、非トランザクション テストで機能する場合でも、常に null と評価されます。

@Before アノテーションを使用して 2 つのオブジェクトを永続化します。

テストでこれら 2 つのオブジェクトにアクセスすると、正しいインスタンスが得られます。

と の間の関連付けをチェックするto、その関連付けを明示的に定義したため、正しい参照が得られます。

しかし、逆にチェックすると、オブジェクトoは正しく更新されません。

関連付けは、ドメイン オブジェクトで次のように定義されます。

One

Two

テストを @Transactional として実行しないと、うまく動作します。

@Before メソッドの代わりにテスト内にエンティティを保存して編集 しても、違いはありません。