[
https://issues.apache.org/jira/browse/OPENJPA-2074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13150826#comment-13150826
]
Csaba Tűz commented on OPENJPA-2074:
------------------------------------
I installed the OpenJPA Eclipse Tools feature from this
http://people.apache.org/~dwoods/openjpa/devtools/updatesite/
update site.
Then I followed instructions here
http://openjpa.apache.org/openjpaeclipseenhancementbuilder.html
Now I see, that this page lists known bugs. I didn't notice it when installing
the thing.
http://openjpa.apache.org/enhancement-with-eclipse.html
Reading the bug OPENJPA-1879 it looks like you are totally right.
Sorry for generating unnecessary noise.
> 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