Upewnij się, że Twoje DAO jest opakowane w transakcję (np. za pomocą Spring’s Interceptors for Transactions). To samo połączenie będzie wtedy używane do obu połączeń.
Jeszcze lepiej byłoby mieć transakcje o jeden poziom wyżej, w warstwie usług.
Dokumentacja:http://static .springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html
Aktualizacja: Jeśli spojrzysz na JavaDoc DataSourceUtils.getConnection()
metody, do której odwołujesz się w aktualizacji, zobaczysz, że uzyskuje połączenie związane z bieżącym wątkiem:
Zgodnie z tym powinien działać tak, jak go skonfigurowałeś. Używałem tego wzoru wiele razy i nigdy nie napotkałem żadnych problemów, które opisałeś...
Zajrzyj również do tego wątku, ktoś zajmował się tam podobnymi problemami:Transakcje deklaratywne Spring Jdbc zostały utworzone, ale nic nie robią