Some more infos.

The behavious of DataNucleus depends on the strategy I choose to
generate the @Id field.

When I use GAE I always use the GenerationType.IDENTITY because I read
that on JDO docs (http://code.google.com/appengine/docs/java/datastore/
dataclasses.html:  Primary keys of type Key require a @PrimaryKey
annotation and a @Persistent(valueStrategy =
IdGeneratorStrategy.IDENTITY) annotation) and I saw that GAE
documentation about JDO is usually more deep that JPA documentation.

But If I choose GenerationType.AUTO then I see that also DataNucleus,
like all the other persistence provider, generate the key after the
persist and before the flush/commit. Very strange indeed because for
H2 DataBase the AUTO should choose IDENTITY generation.

I'm still more convinced this is a bug in DataNucleus that affect the
way we work on Google App Engine.

On 19 Mag, 07:26, datanucleus <andy_jeffer...@yahoo.com> wrote:
> I've already asked you twice to post your class. You haven't. That
> provides no context for any comment, and I've already told you why
> datastore operations are delayed until commit/flush. Why do you think
> there's a flush() method if you think things ought to go straight to
> the datastore ?
>
> JPA2 spec page 29 footnote 12.
> <spec>[12] If the application does not set the primary key attribute
> corresponding to the relationship, the value of that attribute may not
> be available until after the entity has been flushed to the database.</
> spec>
>
> <spec>/**
> * Synchronize the persistence context to the underlying database.
> * @throws PersistenceException if the flush fails
> */
> public void flush();</spec>
>
> <spec>• If X is a new entity, it becomes managed. The entity X will be
> entered into the database at or
> before transaction commit or as a result of the flush operation.</
> spec>
>
> http://www.datanucleus.org/products/accessplatform/jpa/transaction_ty...
>
> End.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine for Java" group.
> To post to this group, send email to google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group 
> athttp://groups.google.com/group/google-appengine-java?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to