[Seasar-user:4760] [S2Dao] IDの取得ができない

小林正和 [E-MAIL ADDRESS DELETED]
2006年 10月 11日 (水) 11:46:57 JST


お世話になっています。masapon1967といいます。

自動生成するようにしたフィールドをもつオブジェクトをS2Daoを使用して挿入した直後に
そのオブジェクトのフィールドを確認すると0が代入されています。
データベースには正しくレコードが挿入されていました。
これは仕様でしょうか。もしそうではない場合は、どのようにして自動生成した値を
代入するのでしょうか。

過去のログで、#3439のG様が作成した検証用プログラムでは挿入直後に挿入した
オブジェクトのIDに自動生成した値が代入されているようです。

環境
Seasar2 2.3.12
S2Dao 1.0.35
MySQL 5.0.24a
MySQL Connector/J 5.0.3

//テーブル定義
CREATE TABLE dry
{
   id NOT NULL AUTO_INCREMENT,
    name VARCHAR(45) NOT NULL,
    PRIMARY KEY(id)
};

//エンティティ
@Bean(table = "dry")
public class Dry implements Serializable{
    Integer id;
    String name;
    @Id(IdType.IDENTITY)
    public Integer getId(){
        return id;
    }
    public void setId(Integer id){
        this.id = id;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }

//DAO
@S2Dao(bean=Dry.class)
public interface DryDao{
    void insert(Dry dry);
}

//クライアント
public class DryMain{
    private static final String PATH = "app.dicon";
    public static void main(String[] args){
        S2Container container = S2ContainerFactory.create(PATH);
        Dry dry = new Dry("Super");
        DryDao dao = (DryDao)container.getComponent(DryDao.class);
        dao.insert(dry);
        System.out.println(dry.getId());//自動生成した値が入っていてほしい。
    }
}

//app.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
    "http://www.seasar.org/dtd/components23.dtd">
<components>
    <include path="j2ee.dicon"/>
    <include path="dao.dicon"/>
    <component class="samples.DryDao">
        <aspect>dao.interceptor</aspect>
    </component>
</components>

標準出力
DEBUG 2006-10-11 11:23:17,436 [main] 物理的なコネクションを取得しました
DEBUG 2006-10-11 11:23:17,436 [main] 論理的なコネクションを取得しました
DEBUG 2006-10-11 11:23:17,757 [main] 論理的なコネクションを閉じました
DEBUG 2006-10-11 11:23:17,807 [main] 論理的なコネクションを取得しました
DEBUG 2006-10-11 11:23:17,817 [main] INSERT INTO dry (name) VALUES ('Super')
DEBUG 2006-10-11 11:23:17,947 [main] SELECT LAST_INSERT_ID()
DEBUG 2006-10-11 11:23:18,167 [main] 物理的なコネクションを取得しました
DEBUG 2006-10-11 11:23:18,167 [main] 論理的なコネクションを取得しました
DEBUG 2006-10-11 11:23:18,187 [main] 論理的なコネクションを閉じました
DEBUG 2006-10-11 11:23:18,187 [main] 論理的なコネクションを閉じました
0

-- 
----------------------------------------------
Masakazu Kobayashi ([E-MAIL ADDRESS DELETED])
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20061011/0cf86387/attachment.html 


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