[ 
https://issues.apache.org/jira/browse/OPENJPA-330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13015929#comment-13015929
 ] 

Heinz Striebeck commented on OPENJPA-330:
-----------------------------------------

This also happens with
@GeneratedValue(strategy = GenerationType.IDENTITY)


> unable to persist a new entity, when there is a entity with id value 0 loaded 
> in persistent context
> ---------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-330
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-330
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 1.0.0
>            Reporter: Henry Lai
>         Attachments: ptpissue7.zip
>
>
> unable to persist a new entity, when there is a entity with id value 0 loaded 
> in persistent context.
> The entity is declared to use generated value sequence strategy.
> <1.0.0-SNAPSHOT-SNAPSHOT nonfatal store error> 
> org.apache.openjpa.persistence.EntityExistsException: An object of type 
> "ptp.test.issue7.T7Entity" with oid "ptp.test.issue7.T7Entity-0" already 
> exists in this context; another cannot be persisted.
>       public void testEntityWithZeroID(){
>               PersistenceProviderImpl openJPA = new PersistenceProviderImpl();
>               EntityManagerFactory factory = 
>                       openJPA.createEntityManagerFactory("test", 
> "ptp/test/issue7/persistence.xml",
>                                               System.getProperties() );
>               
>         EntityManager em = factory.createEntityManager();
>         em.getTransaction().begin();
>               Query deleteStmt = em.createNativeQuery("delete from T7Entity");
>               deleteStmt.executeUpdate();
>               em.getTransaction().commit();
>               
>         em = factory.createEntityManager();
>         em.getTransaction().begin();
>         Query createStmt = em.createNativeQuery("insert into T7Entity 
> (S_ID,NAME) values (0,'MICKEY')");
>         createStmt.executeUpdate();
>         em.getTransaction().commit();
>         
>         
>         em = factory.createEntityManager();
>         em.getTransaction().begin();
>         Query query = em.createQuery("select obj from T7Entity obj");
>         List resultList = query.getResultList();
>         
>         T7Entity aEntity = new T7Entity();
>         aEntity.setName("Minnie");
>         
>         em.persist(aEntity);  // fails here
>         
>         em.getTransaction().commit();
>         
>         em.close();
>       }
>       <entity class="T7Entity">
>               <table name="T7Entity" />
>               <attributes>
>                       <id name="id">
>                               <column name="S_ID" />
>                               <generated-value strategy="SEQUENCE" 
> generator="seqGen1" />
>                               <sequence-generator name="seqGen1"      
> sequence-name="SEQ_OBJECT_ID" />
>                       </id>
>                       
>                       <basic name="name" />
>               </attributes>
>       </entity>

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to