Есть объекты, ключи к которым проставляются программно. Сохраняются объекты через EntityManager так:
| Код | em.getTransaction().begin(); em.persist(object); em.getTransaction().commit();
|
Проблема в том, что первый объект сохраняется ОК, а при попытке сохранить второй объект вылетает ошибка:
| Код | javax.persistence.EntityExistsException: Exception Description: Cannot persist detached object [Object[PK=ObjectPK[Id1=47973, Id2=20909202, Id3=6956, Id4=0, endAbsTime=1210245775513]]]. Class> Object Primary Key> [20909202, 1210245775513, 47973, 6956, 0] at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.persist(EntityManagerImpl.java:208) at ObjectDAO.save(ObjectDAO.java:94) at TestPersistence.main(TestPersistence.java:42) Caused by: Exception [TOPLINK-7231] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException Exception Description: Cannot persist detached object [Object[PK=ObjectPK[Id1=47973, ...]]]. Class> Object Primary Key> [20909202, 1210245775513, 47973, 6956, 0] at oracle.toplink.essentials.exceptions.ValidationException.cannotPersistExistingObject(ValidationException.java:2171) at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNotRegisteredNewObjectForPersist(UnitOfWorkImpl.java:3251) at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.registerNotRegisteredNewObjectForPersist(RepeatableWriteUnitOfWork.java:339) at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:3220) at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.persist(EntityManagerImpl.java:205) ... 2 more
|
|