Ujistěte se, že je vaše DAO zabaleno do transakce (např. pomocí Spring's Interceptors for Transactions). Poté bude pro oba hovory použito stejné připojení.
Ještě lepší by bylo mít transakce o úroveň výše, na vrstvě služeb.
Dokumentace:http://static .springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html
Aktualizace: Pokud se podíváte na JavaDoc DataSourceUtils.getConnection()
metodou, kterou jste uvedli ve své aktualizaci, uvidíte, že získá připojení spojené s aktuálním vláknem:
Podle toho by to mělo fungovat tak, jak jste to nastavili. Použil jsem tento vzor mnohokrát a nikdy jsem nenarazil na žádné problémy, jako jste popsal...
Podívejte se prosím také do tohoto vlákna, někdo tam řešil podobné problémy:Jarní deklarativní transakce Jdbc byly vytvořeny, ale nic nedělaly