I've recently read in one tutorial that Spring closes connection after transaction commit.
Is that true? I can't find anything about it in the Spring reference documentation.
What's the rationale behind it? Since now, I thought that there is a one-to-many relation between connection and transactions.
No, the connection is closed only when
SessionFactory
bean is destroyed.Spring calls
close()
when the transaction finishes which could be from either a commit or rollback. Whether or notclose()
actually closes a real JDBC connection depends on theDataSource
configuration. If it's a plain JDBC connection, then it will actually close. If it is a connection pool then it will probably just be returned to the pool on close.