2012-05-09 4 views
0

Два или более пользователя, пытающихся вставить таблицу, получающую исключительное исключение нарушения ограничений в Hibernate. Как обращаться, может кто-нибудь мне помочь. Спасибо заранее.исключительное исключение нарушения ограничений в Hibernate

+2

Вы должны принять один из ответов на ваши предыдущие вопросы, иначе люди перестанут отвечать на ваши вопросы. –

+0

проверить ID генератора stratergy для [передать этот вопрос более подробно о генерации ID] [1] [1]: http://stackoverflow.com/questions/495536/hibernate-id-generator –

ответ

2

Эта ошибка всегда появляется, если вы хотите вставить строку со значением в столбце с уникальным индексом или ограничением, а вставленное значение для этого столбца уже существует в другой строке. Это может быть проблемой при одновременном доступе в многопоточных средах.

В зависимости от источника проблемы существуют некоторые стратегии для его решения:
- Используйте генератор (последовательность или аналогичный) для генерации уникального идентификатора. Hibernate помогает вам с тегом <generator> внутри тега <id>.
- Используйте <version> тег, чтобы избежать одновременного изменения одного и того же объекта
- написать метод, который создает уникальные значения
- синхронизировать части кода с Java synchronized заявление
- использовать сессионные и после исключения повторной попытки вставить с новым значением
- правильные логические ошибки в коде
- и еще немного ...

+0

I проверит его с вашей доброй информацией. Спасибо Джоанна. – Ganesamoorthy