[Seasar-user:17270] [SAStruts]Scaffold アプリケーション更新時に例外発生

oriwa [E-MAIL ADDRESS DELETED]
2009年 4月 18日 (土) 12:12:43 JST


こんにちわ。

Scaffoldアプリケーションを試してみたところ、editをクリックして、適当に編集して、UPDATEをクリックすると、
javax.servlet.ServletException: org.seasar.extension.jdbc.exception.SOptimisticLockException: [ESSR0736]エンティティ([E-MAIL ADDRESS DELETED])は既に変更されています。
が発生します。

s2jdbc-genで作成したentityでも、Scaffoldで作成されたentityでも同様です。

ドキュメントの下記記述が該当するかと思いますが、不具合点が思いつきません。

> 例えば、エンティティのバージョンチェック用のプロパティの値が1だったとします。 更新時にカラムの値が1のままならOK
> で、2に更新されます。 カラムの値が1でない場合は、他で更新されているということなので、  
> javax.persistence.OptimisticLockException  が発生します。 

データベースはpostgres8.3でversionコラムのデータ型はlongです。
Entityのversionフィールドには@Versionが付与されています。

Scaffoldアプリケーションでは、データベースのIDが自動採番では無いのに、自動採番として生成されるため、その部分の修正のみしました。

思い当たることがありましたら、ご教示いただけますよう、よろしくお願いします。

wori




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