Извините, что спросите об этом, если на это был дан ответ, но я слышал (от потенциального другого noob), что у Hibernate есть/есть какой-то диспетчер пулов соединений, который также обрабатывает блокировку базы данных. Теперь я прочитал, что это было отменено в Hibernate 3, поэтому я, как нуб, очень смущен тем, что использовать.
У меня есть Postgresql db с несколькими клиентами, которые используют max. одно соединение db в любой момент времени. Я использую JDBC, но хочу перейти в Hibernate.
Поэтому в случае двух одновременных операций обновления, я не знаю, правильно ли это выполняется СУБД. Я думал о блокировке таблицы db вручную, если кто-то работает на ней, но должен быть лучший способ.
Я работаю только с простыми единичными sql-операторами, иногда с готовыми заявлениями. Нет больших обновлений, только однострочные обновления.
Вы хоть представляете, как это, в общем, нужно решить? Это даже проблема?
Это слишком общее для действительно полезного ответа, и я должен просто просто проголосовать за него. Но я постараюсь помочь.
Пул соединений не имеет ничего общего с блокировкой. Эти два не связаны между собой.
Я думаю, что вы смутно пытаетесь обратиться к оптимистичному контролю параллелизма в Hibernate. Это альтернативная стратегия для нормальной блокировки строк, с другим набором преимуществ и недостатков.
Дополнительную информацию см. В документации по Hibernate, а также в статье wikipedia, посвященной оптимистичному контролю параллелизма.
Я также написал недавнюю запись в блоге по этой теме, которая может быть полезна.
Тем не менее, кроме всего прочего, не существует замены для реального понимания параллелизма в приложении и базе данных. Я настоятельно рекомендую подробно прочитать главу документации по PostgreSQL по контролю параллелизма.