Se till att din DAO är insvept i en transaktion (t.ex. genom att använda Springs Interceptors for Transactions). Samma anslutning kommer då att användas för båda samtalen.
Ännu bättre skulle vara att ha transaktionerna en nivå högre, på servicelagret.
Dokumentation:http://static .springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html
Uppdatering: Om du tar en titt på JavaDoc för DataSourceUtils.getConnection()
metod som du refererade till i din uppdatering, kommer du att se att den får anslutningen som är kopplad till den aktuella tråden:
Enligt detta ska det fungera som du har ställt in det. Jag har använt det här mönstret många gånger och aldrig stött på några problem som du beskrev...
Ta också en titt på den här tråden, någon hade att göra med liknande problem där:Spring Jdbc-deklarativa transaktioner skapade men gör ingenting