[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 メーリングリストの案内