私はJSFプロジェクトに取り組んでいます。MySql 5.1、JBoss 4.22GAをベースとした私たちの開発で、今日はいくつかの問題があり、誰かが私にそれを理解させてくれることを願っています。2つの同じクエリ間で同じ結果が得られたのはなぜですか?
いくつかの理由で私はテーブルを更新してからこれらの変更を見つけることができるかどうかを確認する必要があります。そのために、以下のようなメソッドを呼び出します。
create table `table` (
id int,
update_date datetime,
);
// consider this method as one transaction
somemethod() {
A. select max(update_date) from table where id = 1;
B. update table set update_date = now() where id = 1;
C. select max(update_date) from table where id = 1;
}
なお:
1.we break after A (you know using break point in eclipse)
2.we execute B from somewhere outside application (which means execute update in something like GUI DB manager)
3.after B we proceed to execute C (same we did as A)
、我々はAで行ったように、我々は同じ結果を得ました。しかし、我々は、GUI DBマネージャでその変更を確認することができます。なぜこのようなことが起こったのか、誰にでも分かりますか?助けてくれてありがとう。ありがとうございました!
キャッシュ設定を確認してください。どのようにデータベースに接続していますか? – MrKiane
こんにちは、お返事ありがとうございます。 JDBCを使用してデータベースに接続します。私はキャッシュの設定を見てみるべきですか? – redfoxlee