2009-05-14 5 views
5

Sto semplicemente migrando una delle nostre applicazioni da JDBC puro a Spring JDBCTemplate. Mi chiedevo come creare un blocco di scrittura per un tavolo. Eseguo semplicemente una query "LOCK TABLE foo" o esiste un modo generalizzato per farlo in JDBCTemplate?Spring JDBCTamplate Table Locking with MySQL

Grazie!

risposta

9

JdbcTemplate utilizza un DataSource, quindi non è garantito che si utilizzerà la stessa connessione per l'istruzione LOCK TABLE e qualsiasi altra cosa si stia facendo nella prossima chiamata a JdbcTemplate. Quindi è importante farlo in una transazione. Impostare un PlatformTransactionManager, un DataSourceTransactionManager sul DataSource di JdbcTemplate o un JtaTransactionManager se JdbcTemplate utilizza un DataSource JNDI fornito dal contenitore. Puoi annotare il tuo metodo come @Transactional o creare una transazione a livello di codice utilizzando PlatformTransactionManager.