Actually, I managed to do this by putting in a custom ConnectionProvider (based on the DriverManagerConnectionProvider in Hibernate), naming that class in the hibernate.properties file so that it is found first time in (see fragment below).
The ConnectionProvider class checks to see whether the properties file that it originally used to load the properties has been updated. If it has, it reconfigures itself with the new changes. This can cause issues if there are connections open, so I beefed up the tracking of the open and free connections in the pool.
Because the check is made every time a getConnection() or closeConnection() is called, this is not ideal for a production environment, but it suits my particular need, which is to test against multiple DBMSs in a development environment.
hibernate.properties required setting:
Code:
hibernate.connection.provider_class=com.blah.core.persistence.HotPropertiesDriverManagerConnectionProvider