OptimisticLockException при попытке извлечь данные из postgreSQL - PullRequest
4 голосов
/ 12 марта 2009

Мы разрабатываем веб-сайт, который должен иметь несколько запросов в секунду .-

Наша текущая среда - JavaEE, JBoss 4.2.3, Struts2 для MVC, JPA с Hibernate в качестве ORM и Postgres в качестве DB .-

Это сценарий: когда запрос поступает на любую из страниц, некоторые действия проверяют информацию в БД для заполнения запрошенной страницы (эта информация состоит из нескольких сущностей, некоторые из которых сопоставлены с коллекциями, некоторые ленивы, некоторые стремятся); все работает нормально, пока мы не получим несколько (не много ... 2 достаточно XD) одновременных запросов, а затем hibernate выдает «OptimisticLockException» при получении этой информации.

Самое смешное в этом то, что мы только читаем информацию !! никогда не пишу !!

Может быть, мы что-то упустили или что-то подобное ... любая помощь будет оценена.

Заранее спасибо.

1 Ответ

3 голосов
/ 12 марта 2009

Возможно, ваш контроль транзакций неисправен. Если вы используете open-session in view, обязательно установите транзакцию только для чтения, в противном случае, если вы выполните obj.setXX (), это вызовет изменение, и hibernate попытается обновить таблицу.

Посмотрите также на конфигурации вашей стратегии изоляции транзакций.

Finnaly, обязательно правильно реализуйте атрибут version, а также его отображение; и методы equals и hashcode (особенно при использовании коллекций).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...