本セッションでシーケンス"****_seq"のcurrvalはまだ定義されていません

DBの話


今回はPostgreSQLだけど

本セッションでシーケンス"****_seq"のcurrvalはまだ定義されていません


ってなるときがある。


『何も悪くないのにぃ』
って思うのだけれども、やっぱ悪いには悪い。なので怒られる。


原因は、

トランザクションがオートになっていて
SQL発行と同時にコミットされてしまうために
currvalしたときにはnextvalの値が残っていない

というわけ。


今回たまたまSa-StrutsのActionに書いてあったソースをそのまま
バッチプロジェクトにあてがったために、
UserTransactionでのbeginがされていなかったためである。