you have to   make the  user-article relationship  bidirectly befroe you
persist the article,  like:


article.getusers().add(user);




On Wed, Aug 26, 2009 at 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
> >
>


-- 
Yong Niu (Michael)
yong...@gmail.com

--~--~---------~--~----~------------~-------~--~----~
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