[seasar-s2dao-dev:660] Re: S2DAOによるCREATE VIEWについて

kubo [E-MAIL ADDRESS DELETED]
2009年 1月 9日 (金) 09:43:29 JST


久保(jflute)です。

取り急ぎ

まず、質問に関してはSeasar-User-MLの方がよいかと思います。
こちらのMLはS2Daoの開発に関する議論をするところです。

> 上の場合、インサートはロールバックされていてViewの削除はロールバックされません。

Viewの削除はDDL文なのでロールバックは利かないかと思われます。
(これはDBMSの基本的な仕様のはずです)

2009/1/9 houjyou <[E-MAIL ADDRESS DELETED]>:
> はじめまして、北条です。
> 中々解決しないので2点ご相談させてください。
>
> s2-dao-1.0.49.jar、s2-dao-tiger-1.0.49.jarを使用し以下のような構成でCREATE VIEWを行っています。
>
> 「DAO」
> @S2Dao(bean=Kinds.class)
> public interface KindsDao {
>
> public int deleteKinds();
> public int createKinds();
> }
>
> 「SQLファイル」
> KindsDao_createKinds.sql
> create view kinds as select * from abc_summary(中身)
>
> 「DAO」のcreateKindsメソッドをKinds(View)が無い状態で実行したところ以下のエラーとなってしまいます。
>
> WARN  2009-01-09 08:07:58,718 [main] テーブル(kinds)が見つかりません
>
> Exception in thread "main"
> org.seasar.framework.exception.SQLRuntimeException:
> [ESSR0071]SQLで例外(ErrorCode=1146,
> SQLState=42S02)が発生しました。理由はcom.mysql.jdbc.exceptions.MySQLSyntaxErrorException:
> Table 'vsp.kinds' doesn't exist
> at
> org.seasar.extension.jdbc.util.DatabaseMetaDataUtil.addPrimaryKeys(DatabaseMetaDataUtil.java:89)
> at
> org.seasar.extension.jdbc.util.DatabaseMetaDataUtil.getPrimaryKeySet(DatabaseMetaDataUtil.java:58)
> at
> org.seasar.dao.impl.PropertyTypeFactoryImpl.setupPrimaryKey(PropertyTypeFactoryImpl.java:170)
>
> これをKinds(View)がある状態でdeleteKinds()⇒
> createKinds();の順に実行すると削除後、VIEWが正常に作成されエラーは出力されませんでした。
> (View消去前と消去後のcreateViewの中身を違うものにしたので両方成功していることは確認済み)
> 解決策はあるでしょうか?
>
>
> もうひとつ悩んでいる部分があってkinds(View)が存在する状態で以下の処理を実行したところViewに関してはロールバックされませんでした。
>
>
>
> ASummary aSummary = new ASummary();←①適当なインサート処理を実行
> ASummary.setCd("40039997");
> aSummaryDao.insert(aSummary);
>
> kindsDao.deleteKinds();←②Viewの削除処理を実行
>
> // ③わざと例外を発生させる
>  if(true){
>    throw new NullPointerException("adsdfafda");
>  }
>
> 上の場合、インサートはロールバックされていてViewの削除はロールバックされません。
> 他にもインサート2つ続けてロールバック等してみたところ問題なくロールバックされてたのでdiconファイルのトランザクション設定は間違っていないとは思うのですが・・・。
> ご相談にのっていただけると助かります、よろしくお願いします。
>
>
>
> _______________________________________________
> seasar-s2dao-dev mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-s2dao-dev
>
>


seasar-s2dao-dev メーリングリストの案内