У меня есть несколько вопросов о транзакции / сеансе / соединении JDBC / транзакции базы данных.
Пример: («Транзакция» и «ParallelStream»)
public loadProductList( List<Integer> productIdList ) {
List<Product> productList = new ArrayList<>();
productIdList.parallelstream().forEash( productId -> {
// load Product data from Database
Product Product = productService.getProductById( productId );
......
productList.add( product );
}
}
1 - Какой метод должен быть транзакционным: «loadProductList» или «getProductById»?
2 - Можно ли выполнять параллельные запросы SQL только с одной транзакцией?
или мы должны использовать Транзакцию / Запрос?
3 - Отношение между:
- Транзакция <-> Сессия: 1-n или 1-1?
- Сеанс <-> JDBC-соединение: 1-n или 1-1?
- Соединение JDBC <-> Транзакция базы данных: 1-n или 1-1?