Я использую Hibernate (JPA) с База данных Derby - мой сервер приложений Jboss 6.0 .Я должен предварительно заполнить таблицу 50000 информацией о сотрудниках, и для этого я использовал отдельную программу JDBC.Теперь из моего приложения мне также нужно вставить информацию о новом сотруднике на лету, в ту же таблицу, и в то время я использую JPA (так как он работает в контейнере приложения).
Мой класс Employeeявляется компонентом Entity и имеет столбец " Id ", являющийся первичным ключом с аннотацией " @ GeneratedValue (стратегии = авто) ", так что Hibernate вычисляет соответствующий серийный номер для первичного ключа(т. е. столбец идентификатора).
Теперь проблема в том, что Hibernate всегда запускает этот запущенный сериал с «1», даже если в таблице Employee уже есть записи.Таким образом, из приложения, когда я пытаюсь вставить новую запись, используя Entitymanager :: persist () , я всегда получаю ограничение ограничения ошибка типа " дубликат ключазначение в ограничении уникального или первичного ключа или уникальном индексе".Это потому, что hibernate пытается вставить новую запись с Id = 1 , где у меня уже есть запись в этой таблице с Id = 1.
Мой вопрос
а) как я могу обновить кеш Hibernate'e, чтобы мой рабочий серийный номер для столбца «Id» можно было соответственно скорректировать?Я понимаю, что это будет варьироваться от БД к БД - но возможно ли это вообще ?
б) Есть ли другой способ добиться того же?
в) ЕслиЯ пишу отдельную программу JPA для выполнения массовой вставки (т.е. предварительного заполнения), а затем запускаю свое приложение Jboss, сможет ли Hibernate определить правильный «работающий серийный номер», нет?
Заранее спасибо за любые предложения,- Кунталь