I really recommend you read the documentation:

http://code.google.com/appengine/docs/java/datastore/overview.html

You are trying to do things the datastore does not allow.  It's so
different that a relational datastore, I think you'll find you're
constantly roadblocked if you don't become familiar with it.

On Aug 26, 5:42 am, midomarocain <elattar...@gmail.com> wrote:
> i use three class   User , Type ,and Article :
>
> @PersistenceCapable(identityType = IdentityType.APPLICATION)
> public class User {
>
>         @PrimaryKey
>         @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>         private Key id;
>
>         @Persistent
>         private String login;
>
>         @Persistent
>         private Type type;
>
>         .......
>
> }
>
> @PersistenceCapable(identityType = IdentityType.APPLICATION)
> public class Type {
>
>     @PrimaryKey
>     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>     private Key key;
>
>         .......
>
> }
>
> @PersistenceCapable(identityType = IdentityType.APPLICATION)
> public class Article {
>
>     @PrimaryKey
>   �...@persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>     private Long id;
>
>   �...@persistent
>     private User user;
>
>         .....
>
> }
>
> --------------------------------
> I use this method to save the article :
>
> public static Article save(Article article, Long userId) {
>                 Article result = null;
>                 PersistenceManager pm = PMF.get().getPersistenceManager();
>         try {
>                         // Getting the user by id
>                         Query query = pm.newQuery(User.class, "id == 
> idParam");
>                         query.declareParameters("Long idParam");
>                         List<User> users = (List<User>) query.execute(userId);
>                         User user = null;
>                         if (!users.isEmpty()) {
>                                 user = users.get(0);
>                         }
>
>                         article.setUser(user);
>
>                         result = pm.makePersistent(article);
>         } finally {
>             pm.close();
>         }
>         return result;
>         }
>
> the exception :
>
> javax.jdo.JDOFatalUserException: Detected attempt to establish Article
> (16) as the parent of User(14) but the entity identified by User(14)
> has already been persisted without a parent.  A parent cannot be
> established or changed once an object has been persisted.
>         at
> org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException
> (NucleusJDOHelper.java:354)
>         at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent
> (JDOPersistenceManager.java:674)
>         at org.datanucleus.jdo.JDOPersistenceManager.makePersistent
> (JDOPersistenceManager.java:694)
>         ......
>
> thanks in advance
>
> On 25 août, 17:14, objectuser <kevin.k.le...@gmail.com> wrote:
>
> > Can you tell us what the error is?  And maybe some snippits of code
> > showing the relevant parts of your model and how it's mapped?
>
> > On Aug 25, 8:08 am, midomarocain <elattar...@gmail.com> wrote:
>
> > > I have a relation between a User and Article
>
> > > (1) User can have one or many article
>
> > > (2) an article is owned by only one user
>
> > > i'am intersted only by the relation (2)
>
> > > the User is persisted
>
> > > I create a new Article and i want relie it with an existant User
>
> > > But i have a probleme when trying to persist the article object
>
> > > my code is like
>
> > > article.setUser(user);
>
> > >  pm.makePersistent(article);
>
> > > can any one help me please
--~--~---------~--~----~------------~-------~--~----~
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-java@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