Spring JDBCTemplate Table Locking с MySQL - PullRequest
5 голосов
/ 14 мая 2009

Я только что перенес одно из наших приложений с чистого JDBC на Spring JDBCTemplate. Мне было интересно, как создать блокировку записи для таблицы. Должен ли я просто выполнить запрос "LOCK TABLE foo" или есть обобщенный способ сделать это в JDBCTemplate?

Спасибо!

1 Ответ

9 голосов
/ 14 мая 2009

JdbcTemplate использует DataSource, поэтому не гарантируется, что вы будете использовать то же соединение для оператора LOCK TABLE и всего, что вы собираетесь сделать при следующем вызове JdbcTemplate. Поэтому важно, чтобы вы сделали это в транзакции. Установите PlatformTransactionManager, либо DataSourceTransactionManager в источнике данных JdbcTemplate, либо JtaTransactionManager, если JdbcTemplate использует предоставленный контейнером JSDI DataSource. Вы можете аннотировать свой метод как @Transactional или создать транзакцию программно с помощью PlatformTransactionManager.

...