[Seasar-user:8612] Re: [S2Dao]PropertyNotFoundRuntimeExceptionについて
kubo
[E-MAIL ADDRESS DELETED]
2007年 6月 24日 (日) 18:16:12 JST
久保(jflute)です。
> > dbfluteを使用して、デフォルトで用意されている
> > insertOrUpdate(entity)メソッドを使用したところ
> > PropertyNotFoundRuntimeExceptionが発生してしまいます。
> >
> > org.seasar.dao.impl.UpdateModifiedOnlyCommandクラスの
> > createNoUpdateLogMessage(final Object bean, final BeanMetaData bmd)メソッド
> > で発生しているのですが、現状として、logレベルがdebugの場合で、
> > 対象のテーブルの全カラムがPKの場合にのみに発生いたします。
> >
> > これについて、何か設定に間違いがあって発生してしまうのでしょうか。
>
> S2Dao側で、PKに _ が含まれているがEntityのプロパティ名に _ が含まれていない
> 場合でlogレベルがdebugの場合に、PropertyNotFoundRuntimeExceptionが発生する
> ことがわかっています。これはS2Daoのバグです。
>
> ただ、logレベルをINFO以上にしたとしても、S2Daoには「PKのみのテーブルはSQL
> ファイルを書かないと更新できない」という仕様があるので、DBFluteがどういう
> 仕様になっているかは把握してませんが、この制限にどこかでひっかかる気はしま
> す。
神さんがやろうとしているのは、
EntityにSetしたPKがDB上に...
存在する:
→ Update (PKのみテーブルの場合は何の処理もしない)
しない:
→ Insert
ということでしょうか?
それならば特に問題はないと思われます。
(「logレベルをINFO以上にしたとしても」の場合において)
そうではなくて、「PKの列の値自体を更新したい」ということであれば、
S2Daoの「PKのみのテーブルはSQLファイルを書かないと更新できない」
という制限はDBFluteでも全く同じです。
(insertOrUpdate()を利用する状況では考えにくいですが)
Seasar-user メーリングリストの案内