私はHibernate 3.3.2とmysql 5.0.77(innodbエンジン)を使用しています。 私はSQL操作select、updateなどを実行するたびに、mysql終了時にロールバックを行います(queryin com_rollbackカラムでは、毎回増分しています)。私はこれらの操作を休止状態のトランザクションで行います。 Hibernateは何の例外もスローさせずに正常に完了します。私はmysqlの最後で一般的なログファイルを有効にしたときに、各トランザクションで次のような処理が行われました: set autocommit = 0 クエリの実行(選択、挿入、更新) コミット ロールバック 自動コミット= 1hibernateトランザクションはmysql innodbでコミットとロールバックを引き起こします
なぜコミット後にmysqlの終了時にロールバックが行われているのかわかりません。アプリケーションログとmysqlログにエラーはありません。 。:(
。フラッシュモードをflush_neverに設定しましたが、それでもなおcome.session.setFlushMode(FlushMode.NEVER); \t \t \t trx = session.beginTransaction(); 。 \t \t \t retObj =(T)session.createCriteria(clazz).add( \t \t \t \t \t Expression.eq(プロパティ、フィルタ))uniqueResult(); \t \t}キャッチ(HibernateExceptionでのEX){ \t \t \t LOG.finer( "休止状態例外:{0}"、EX)。 \t \t \t //trx.rollback(); \t \t \t throw new CpFaultException(clazz.getName()、ex); \t \t} catch(例外e){ \t \t \t LOG.finer( "{0}"、e)を取得中に例外が発生しました。 \t \t \t //trx.rollback(); \t \t}最後に{ \t \t \t HibernateSessionFactory。closeSession(); \t \t} – user1100537
読みにくく、あなたの投稿を編集する方がよいでしょう。セッションをflushmodeに入れないとは言いませんでした。おそらくあなたはAUTOまたは常に入れてみるべきですが、私はそれが問題だとは思わない...あなたはConnection.setReadOnly(ブール値)にブレークポイントを入れ、そのクラス –