[ https://issues.apache.org/jira/browse/OPENJPA-2074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13149658#comment-13149658 ] Rick Curtis commented on OPENJPA-2074: -------------------------------------- Can you please post the full stacktrace? Also, can you better describe the scenario that you are having problems with? Thanks, Rick > Calling em.persist(...) on simple entity without relations, with null primary key, @GeneratedValue results in InvalidStateException, complaining about non-default primary key. > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: OPENJPA-2074 > URL: https://issues.apache.org/jira/browse/OPENJPA-2074 > Project: OpenJPA > Issue Type: Bug > Components: jpa > Affects Versions: 2.1.1 > Environment: Windows 7, Apache Tomcat 5.5, Eclipse Indigo, OpenJPA plugin handles enhancement, JPA facet, JAX-RS facet > Reporter: Csaba Tűz > Priority: Blocker > > Simple entity without any relations, INT primary key, mapped to Long in POJO. > Entity annotated propery with @Id @GeneratedValue > DMBS: MySQL with JDBC connection. > I started tracking down the issue. I can't get accustomed with the code around it, but I write my experience: (line numbers are based on source release 2.1.1) > org.apache.openjpa.kernel.StateManagerImpl: > - Line 2966: It seems that the method call results in my entity's id field being assigned with a generated value. > - Line 2967: Then in the for loop after that, we reach the same field (the primary key) again at some point, and at > - Line 2968: assignField(i, true) eventually runs on the same code which assigned the Id the first time, which freaks out, as the field value is already set at this point. > org.apache.openjpa.util.ApplicationIds:481 (seems to be a utility method for me) > I cannot investigate further, however I am pretty confident that this is a bug somewhere in the logic, maybe inside StateManagerImpl#assignField method. I believe org.apache.openjpa.util.ApplicationIds:481 should not be invoked the second time, as it's not idempotent. > The exception message: > Primary key field org.inception.teacher4u.persistence.entity.User.userid of org.inception.teacher4u.persistence.entity.User@635e98be has non-default value. The instance life cycle is in PNewState state and hence an existing non-default value for the identity field is not permitted. You either need to remove the @GeneratedValue annotation or modify the code to remove the initializer processing. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira