問題タブ [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.
java - updateメソッドを呼び出さずにトランザクションを保存
@Transactionalで注釈が付けられたメソッドがあります。Oracle DBからオブジェクトを取得し、フィールドを変更してから、メソッドから戻ります。オブジェクトを保存するのを忘れましたが、データベースがとにかく更新されることを発見しました。
applicationContext
私の方法
私の質問は、なぜMyObjectがデータベースに永続化されるのですか?
spring - @Transactionalを使用する場合、この行に複数のマーカーがあります
例えば:
コードは問題なくコンパイルおよび実行されます。
メッセージ自体:この行に複数のマーカー
- 実装
com.pname1.pname2.pname3.pname4.PersonDAO.addPersonToDb
- によるアドバイス
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(org.aopalliance.intercept.MethodInvocation)
それがエラーなのか単なるメッセージなのかよくわかりません。他のスレッドを見ると、エラーとして表示されます。トランザクションが機能するかどうか心配しています。
わかりました、クラスはトランザクションとして注釈が付けられたインターフェースとそのメソッドを実装しています、それで何か問題がありますか?
更新:いくつかのマイナーエラーを解決しました。Webアプリは機能しますが、それでもそのメッセージが表示されます(スタックトレースではなく、ラインブレークポイントにあります):
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(org.aopalliance.intercept.MethodInvocation)によるアドバイス
現在の状況:
私の取引は機能しますか?(例外はなく、Webアプリケーションが実行され、メソッドは機能します)
このメッセージエラーかどうかわかりませんか?
spring - Grailsサービスに関するいくつかの質問
私はGrailsWebアプリケーションを使用していますが、Grailsサービスを使用すると非常に多くの奇妙なことが起こります。そこで、Grailsサービスについてもっと理解してもらうために、これについていくつか質問したいと思います。これは私にとって(そしておそらく他の人にとっても)非常に役立ちます^ _^。前もって感謝します。
サービスがstatictransactional= trueで構成されている場合、ダーティでHibernateセッションでロックされているオブジェクトでメソッドが呼び出された後、すべてのデータ変更をDBにフラッシュしますか?
@Transactional
代わりにクラスレベルでアノテーションを使用できますstatic transactional = true
か?@Transactional(readOnly = true)
そして、DBからデータを読み取って(クエリして、見つけて)欲しいだけのメソッドをいくつか 置くことは可能ですか?トランザクションの継承はどうですか?つまり、親サービスが構成さ
static transactional = true
れていて、子サービスに独自の@Transactional
アノテーション(クラス上)と一部@Transactional(readOnly = true)
(一部のメソッド上)がある場合、子から親のメソッドを呼び出すとどうなりますか?トランザクションは抽象サービスで機能しますか?私が知っているように、抽象サービスではそのBeanを初期化できず、おそらくアプリを起動するときに、Grailsコンテキストにいくつかの違いがあります。
sql - SQL:テーブルの値の関数として表示
私はトランザクションデータベースを使用しています。リレーショナルデータベースでは、テーブル内の行が、データベースが特定の時点で行のフィールドに含まれている値のセットとして定義されています。
スキーマの一部:
つまり、仮想の「Article」テーブルには、id、headline、bodyの3つの列があります。
特定の時間によって定義された仮想「Article」テーブルを表す一時ビューを作成できます。
記事を取得するためにデータベースにクエリを実行するたびに、これら3つの一時的なビューを作成する必要がありますが、作成したくありません。スキーマ自体の一部として永続的なビューの「関数」を作成したいと思います。
そして、データベースから記事を選択したい場合:
SQLには同様の機能がありますか?
git - git リポジトリを変更するコマンドがクラッシュまたは中止された場合、git リポジトリが破損する可能性はありますか?
をいじっているときgit
、私はときどきいろいろ試してから、時間がかかりすぎるコマンド (たとえば、git svn
ネットワークの問題でハングするコマンド) を中止します。これは私に考えさせました:
コマンド (Ctrl-C または ) を強制的に中止することは常に安全kill
ですか? コマンドがクラッシュした場合 (メモリ不足、バグ、ネットワーク/FS の問題)? 不完全な変更が「ロールバック」されるという意味で、リポジトリの変更は「トランザクション」ですか (バージョン管理ファイルシステムのように)? または、その場合、リポジトリが破損する危険がありますか?
git に取り組んでいる賢明な人々はこれを考慮に入れているに違いないと確信していますが、git マニュアルまたはオンラインで情報を見つけることができませんでした。
hibernate - junitテスト用のwicket+spring+hibernateアプリケーションにトランザクションを追加する方法
こんにちは私はjunitテストを実行するときに次の問題があります。
私のバージョン:
hibernate4.0.0CR7スプリング3.1CR2ウィケット1.5.3
ここにtx:annotation-drivenを追加しました。
だから私のgetUserByNameコード
私のアカウントページコンストラクタ。
インジェクションは機能しますが、トランザクション設定が機能していないようです。
なにが問題ですか?問題を解決するための最良の方法は何でしょうか。私は休止状態のテンプレートを使用せず、非侵襲的な休止状態のアプローチを維持することを好みます。
私のspring+hibernateテストでは、現在のスレッドのセッションが見つかりませんが、ウィケットテスターを使用すると問題が発生します。
hibernate - トランザクションはロールバックしません
アプリケーションでOpenSessionInViewを使用しています。私の目標は、例外が発生した場合に、データベース内のすべての変更を1つのメソッドでロールバックすることです。これが私のコントローラーです:
以下に示す構成で機能します:web.xml内:
しかし、この戦略では、ビュー内の行を保存/更新することはできません。だから私は次のようにOpenSessionInViewFilterをovverridedしました:
これで保存/更新できますが、トランザクションはロールバックしません...両方を機能させる方法は?
java - Spring @Transactional - 分離、伝播
実世界の例を介して、注釈の分離と伝播のパラメーターが何であるかを誰かが説明できますか?@Transactional
基本的に、いつ、なぜデフォルト値を変更することを選択する必要があるのか.
caching - ハードドライブのキャッシングとリオーダーが積極的に行われるファイルシステムで、トランザクションの原子性と一貫性をどのように保証しますか?
今日のハード ドライブは、並べ替えを伴うより積極的なキャッシングを使用しており、パフォーマンス値を向上させるためにキャッシュ フラッシュを完全に無視することさえあります。
そのような場合、原子性 (トランザクション) と一貫性を保証することは可能ですか? キャッシュの問題を軽減する既知の方法はありますか?
私は、この主題に関する 1 つの論文を読みました。そこでは、ファイル システムのジャーナリングの問題を解決するために、「強制キャッシュ削除」と呼ばれるソリューションが作成されました。これは基本的に、キャッシュがフラッシュされる原因となる新しい書き込みでキャッシュを埋めることで構成されていました。ただし、フラッシュに数秒かかる場合があるため、これはすべての場合に実用的な解決策ではありません。これ以上の情報を得るのは困難でした。
java - @Transactional を使用した Java Spring および Groovy アプリ - インジェクションは、必要なタイプではなく「proxy」を返します
既存の Java + spring プロジェクトにグルーヴィーなファイルをいくつか追加しました。
プロジェクトは機能していました (つまり、テストを通過しました)。
Groovy メソッドの 1 つに「@Transactional」を追加すると、テストが壊れました。
(@Transactional を追加するには、クラスの注釈を @Service から @Controller に変更する必要がありました。そうしないと、@Transactional は無視されました - うん)。
例外が発生し始めまし
た 例外はさまざまでした
- @Autowired は何も見つかりませんでした - NoSuchBeanDefinitionException
- @Qualifier("loadTransactions") を追加すると、同じ結果が得られました
- @Resource は BeanNotOfRequiredTypeException を与えました: 'loadTransactions' という名前の Bean はタイプ [net.idt.workflow.LoadTransactions] である必要がありますが、実際にはタイプ [$Proxy33] でし
た (これは、私が常に使用する @Autowired よりも優れたエラー メッセージだと思います: -( )
タイプを「Object」に変更すると、@Resource インジェクションが機能しました (@Autowired に少しイライラしているので、Object で試してみませんでした :-/ )
次に、次のグルーヴィーなコードを使用しました
。
「臭い」と感じますが、動作します。
私の質問は次のとおり
です。
@Transactional が何らかのプロキシを使用していることを知る必要はありません
ご協力ありがとうござい
ます