DAOがトランザクションにラップされていることを確認してください(たとえば、Springのトランザクション用インターセプターを使用して)。その後、同じ接続が両方の呼び出しに使用されます。
さらに良いのは、サービスレイヤーでトランザクションを1レベル高くすることです。
更新: DataSourceUtils.getConnection()
のJavaDocを見てください。 アップデートで参照したメソッドを使用すると、現在のスレッドに関連付けられている接続が取得されていることがわかります。
これによると、それはあなたがそれを設定したように動作するはずです。私はこのパターンを何度も使用しましたが、あなたが説明したような問題に遭遇したことはありません...
このスレッドもご覧ください。誰かがそこで同様の問題を扱っていました: Spring Jdbc宣言型トランザクションが作成されましたが、何も実行されていません