[Seasar-user:10495] [S2Dao]Insert後にSequenceで自動生成されたIDを取得したい。

nobu [E-MAIL ADDRESS DELETED]
2007年 9月 13日 (木) 12:11:42 JST


近藤(nobu)です。

検索して見つからなかったので質問させて下さい。
2つのテーブルA,Bがあり、BはAのidを持つことでリレーションできています。
S2Dao用のEntityクラスにしてみると以下のような感じです。

class tableA
{
	int id;      <- Sequenceで自動生成
	int aname;
}

class tableB
{
	int id;      <- Sequenceで自動生成
	int aid;     <- tableA.idを格納する仕様
	int bname;
}

この環境で、データの新規登録の処理を行うとき(例えばServiceクラス内
にて)、S2Daoで

1.tablaAを更新
2.tableA.idを取得して、tableBのEntityにセット。
3.tableBを更新

という手順で行うことになるのですが、2.のtableA.idを取得するには
SQLで"SELECT max(id) from tableA"とするしかないのかな???と
思っています。
insertの戻り値でIDが取得できるか、insertした結果が、採番したid
を含む形のEntityとして取得できればな〜と思っているのですが。

なお、1.〜3.の間はトランザクションが有効にしてあります。

何か御存じの方がいらっしゃいましたら、よろしくお願い致します。



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