[s2container-php5:79] timestampによる排他制御とinsert文の自動生成について

Eishi Kuroda kuroda @ jetsetrecords.net
2007年 2月 25日 (日) 23:18:25 JST


こんにちは、黒田です。

自動生成insert文でのtimestampフィールドの設定に不具合と思われる点を発見しましたので
報告させて頂きます。

S2Dao.PHP5 1.1.1にて、
daoクラスに、下記の様なentityを引数としたinsert文の自動生成用メソッドを作ります。

public function insert(Department $department);

entityにはtimestampプロパティを定義しておきます。
このinsertを呼び出すと、
自動生成されるSQL内にてtimestampフィールドに対しunixtimeが設定されるようになっており、
この為、挿入後の該当列のtimestampフィールドが0000-00-00 00:00:00となります。

s2dao.core.classes.phpの、
setupInsertBindVariablesメソッドにて、

  if (strcasecmp($propName, $timestampPropertyName) == 0) {
    $this->setTimestamp(time());

となっているのが問題では無いかと思われましたので、
下記の様に修正してみたところ、
自動生成insert文で正しくtimestampが設定されるようになりました。

 $this->setTimestamp(date('Y-m-d H:i:s', time()));

これで問題なければ、修正をお願いしたいと思います。
では、よろしくお願いいたします。

黒田映史



S2Container-PHP5 メーリングリストの案内