Download List

Projeto Descrição

Rhino(java)を使ったServer-side JavaScript(MaachangComet)を開発しています。

System Requirements

System requirement is not defined

Liberado: 2008-05-11 21:32
MaachangComet b1.10 (1 files Esconder)

Release Notes

楽観的ロックに対応しました。
利用方法としては、テーブル定義に対して、
>optimistic_lock="long"
のように「optimistic_lock」カラムを追加することで、対応
できます。

また、楽観的ロックターゲットとして、Model.save()メソッドが対応できます。
このとき楽観的ロックの場合、このメソッドの戻り値が[false]となりますが、
DB非対応などの場合も同様に[false]が返されるので、楽観的ロックとなって
いるかを、チェックする場合、
>Model.isOptimisticLock(param)
※paramは、Model.save(param)で使った第一引数を指定する。
で[true]が返された場合、楽観的ロックを検知できます。

以下サンプル。
-optimistic_lock_testテーブル定義--------------------------------
[optimistic_lock_test]

# メッセージ.
message="text"

# 生成日付.
create_time="timestamp"

# 更新日時.
update_time="timestamp"

# 楽観的ロック.
optimistic_lock="long"

-サンプルコード---------------------------------------------------
var x = OptimisticLockTest.bean() ;
x.message="hoge" ;
var res = OptimisticLockTest.save(x) ;
println( ">>res1:" +res ) ;
commit() ;
// 何らか外部から、optimistic_lock_test.optimistic_lockの数値を
// 適当な値に変更する。
x.optimisticLock="-1" ;

res = OptimisticLockTest.save(x) ;
println( ">>res2:" +res ) ;
println( ">>optimistick?:" + OptimisticLockTest.isOptimisticLock(x) ) ;

-サンプル結果-----------------------------------------------------
>>res1:true
>>res2:false
>>optimistick?:true

まあ、こんな感じで利用することで、楽観的ロックが対応できます。

Changelog

・楽観的ロック機能を追加。