[Seasar-user:14650] Timestampによる排他制御について

紀 洪森 [E-MAIL ADDRESS DELETED]
2008年 6月 11日 (水) 19:11:46 JST


お世話になっております。紀洪森と申します。

s2dao 1.0.47

S2Daoで、自動的に生成するSQLを利用して、排他制御はOKです。
しかし、自分の更新SQLを利用する場合は、排他制御が無効になります。
(NotSingleRowUpdatedRuntimeExceptionが投げられません、DBが更新されません)
どのようにすればいいでしょうか。教えていただければありがたいです。


@Bean(table = "usod_m_custom_mail", timeStampProperty = "timestamp")
public class UsodMCustomMailEntity extends BaseEntity {
    @Column("template_id")
    public String templateId;

    @Column("template_name")
    public String templateName;

    @Column("description")
    public String description;

    @Column("mail_from")
    public String mailFrom;

    @Column("mail_to")
    public String mailTo;

  ...省略...

    @Column("last_update_date")
    public Timestamp timestamp;
}

@S2Dao(bean = UsodMCustomMailEntity.class)
public interface UsodMCustomMailDao extends BaseDao {
    @Arguments("entity")
    public int update(UsodMCustomMailEntity entity);
}

UsodMCustomMailDao_update.sql:

UPDATE usod_m_custom_mail 
SET template_name = /*entity.templateName*/,
    description = /*entity.description*/,
    last_update_date = current_timestamp
WHERE template_id = /*entity.templateId*/ 
  AND last_update_date = /*entity.timestamp*/

以上 宜しくお願いいたします。




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