2010-06-10 4 views
3

Nous examinons l'utilisation de JdbcTemplate pour accéder à la base de données - mais nous avons beaucoup de connexions DB différentes que chaque classe peut utiliser, donc injecter le jdbcTemplate n'est pas une option atm. Donc, si nous faisons unen utilisant JdcbTemplate standalone

jdbcTemplate = new JdbcTemplate(dataSource); 

quelle sera la politique de transaction? La validation automatique est désactivée dans la base de données.

Répondre

2

Vous pouvez configurer chaque objet javax.sql.DataSource pour activer la validation automatique si le travail est en cours ou désactiver la validation automatique et écrire la logique de transaction par programmation.

Les classes java.sql.Connection et javax.sql.DataSource ont des méthodes pour activer/désactiver la validation automatique. En ce qui concerne l'injection de dépendances et Spring, vous pouvez toujours injecter un objet source de données dans votre référentiel. Si vous autorisez également chaque référentiel à étendre la classe org.springframework.jdbc.core.support.JdbcDaoSupport, vous disposez d'un objet JdbcTemplate avec la méthode getJdbcTemplate() dérivée.

Vous pouvez également laisser Spring gérer le traitement des transactions pour vous. Sans gestionnaire de transactions XA, vous avez besoin d'un gestionnaire de transactions pour chaque source de données. Avec de nombreux gestionnaires de transactions, le support des transactions déclaratives avec l'annotation @Transactional est impossible. Vous pouvez cependant injecter le gestionnaire de transactions dans votre classe de service. Ceci est décrit dans la documentation de référence here.

+0

Donc je suppose, le JdbcTemplate commettra simplement après chaque mise à jour, si rien d'autre n'est spécifié? – Flyhard

+0

C'est le comportement par défaut pour chaque 'DataSource' que j'ai utilisé. Cela devrait donc, mais vérifiez votre configuration 'DataSource' si le' JdbcTemplate.update (..) 'ne commet pas. – Espen

+0

javax.sql.DataSource n'a aucune mention de validation automatique. –