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