openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sutter (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OPENJPA-2074) Calling em.persist(...) on simple entity without relations, with null primary key, @GeneratedValue results in InvalidStateException, complaining about non-default primary key.
Date Tue, 15 Nov 2011 17:40:51 GMT

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

Kevin Sutter commented on OPENJPA-2074:
---------------------------------------

I just linked this issue with OPENJPA-673.  There has to be something more to this Issue than
what's currently documented.  The simple example provided is tested several times over in
the OpenJPA Junit bucket.  After doing some searching, I came across OPENJPA-673.  The use
of a Version column with an unexpected value makes some sense.  But, I thought that issue
was resolved recently as well (just couldn't find the JIRA yet).  Since there are multiple
JIRAs with similar results, we probably need to take a closer look.
                
> 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

       

Mime
View raw message