[Seasar-user:9982] Re: [DBFlute]torque.versionNoFieldNameの設定方法

Yu Tagaya [E-MAIL ADDRESS DELETED]
2007年 8月 20日 (月) 16:57:25 JST


久保さん
多加谷です。

以下の結果となりました。

□torque.versionNoFieldName = VerNo

    /** VERSION_NO-Annotation */
    public static final String VERSION_NO_PROPERTY = "verno";

□torque.versionNoFieldName = verNo

    VERSION_NO_PROPERTYが生成されない。

> 久保です。
>
> 多加谷さん、こんにちは
>
>> DBFluteのtorque.versionNoFieldNameにバージョン管理用のフィールド名を
>> 設定し、排他制御しようとしていますが、where句には条件が入るものの、
>> 値がインクリメントされません。
>
> まず、仕様的には、S2Daoが自動でインクリメントしてくれるはずです。
> なので、利用者(DBFluteも含めて)そこを意識する必要はないはずです。
>
> 設定を見る限り、特に問題はなさそうです。
>
> 唯一、言えるのは、commonColumnSetupBeforeInsertInterceptorLogicMapで
> 「VerNo=new java.math.BigDecimal(1)」としていますが、
> S2Daoが自動で付与してくれるはずなので、この設定は不要です。
> ですが、上記の問題としている現象とは無関係と思われます。
> (設定してても単に無視されるだけのはず)
>
> 具体的には、AbstractAutoHandler#setupUpdateBindVariables()で
> インクリメントされています。
>
>> ・設定ファイル
>> torque.versionNoFieldName = VerNo
>
> 試しに
>
> torque.versionNoFieldName = VerNo
>
>>
> torque.versionNoFieldName = verNo
>
> でやってみて頂けます?
>
>    } else if (pt.getPropertyName().equals(versionNoPropertyName)) {
>        Object value = pt.getPropertyDesc().getValue(bean);
>        int intValue = IntegerConversionUtil.toPrimitiveInt(value) + 1;
>        setVersionNo(new Integer(intValue));
>        varList.add(getVersionNo());
>
> で、「pt.getPropertyName()」で比較しているので、
> 「列名 = VerNo / プロパティ名 = verNo」
> なので、verNoでないといけないような気がします。
>
>
> #
> # C#の場合は、プロパティ名は先頭が大文字なので
> # VerNoのままでもOKだったのかも...
> #
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 




Seasar-user メーリングリストの案内