Does the server console log say anything?

On Sun, Mar 21, 2010 at 8:13 PM, alosii <[email protected]> wrote:

> So I've been struggling with a very simple thing. I have a User that
> contains a list of items. I want to remove an item from this list. I
> do this by doing this:
>
> 1.- Get the user from the db
> 2.- Remove the item from the list
> 3.- Call an update on the user
>
> On code:
>
> public void removePlaylist(String userID, String playlistName) {
>                XYZUserContainer userCont = new XYZUserContainer();
>                XYZUser user = userCont.getUserByEmail(userID);
>                user.removePlaylist(playlistName);
>                userCont.updateUser(user);
> }
>
> The problem: the change is not saved on the DB. The user's list is
> correctly modified but is not persisted.
>
> "How do you update it?"  you must me asking:
> public XYZUser updateUser(XYZUser user) {
>                PersistenceManager pm = PMF.get().getPersistenceManager();
>                Transaction tx = pm.currentTransaction();
>                try {
>                        tx.begin();
>                        XYZUser updatedUser = pm.makePersistent(user);
>                        tx.commit();
>                        return updatedUser;
>                } catch (RuntimeException ex) {
>                        ex.printStackTrace();
>                        throw ex;
>                } finally {
>                        if (tx.isActive()) {
>                                tx.rollback();
>                        }
>                        pm.close();
>                }
>        }
>
> "How do you get the user?"
> public XYZUser getUserByEmail(String email) {
>                PersistenceManager pm = PMF.get().getPersistenceManager();
>                pm.setDetachAllOnCommit(true);
>                try {
>                        XYZUser user = pm.getObjectById(XYZUser.class,
> email);
>                        pm.close();
>                        return user;
>                } catch (javax.jdo.JDOObjectNotFoundException e) {
>                        pm.close();
>                        return null;
>                }
>        }
>
>
>
> The annotations:
>
> ==================================================================================
> XYZUser:
> public class XYZUser {
>        ....
>
>        @Persistent(defaultFetchGroup="true")
>        @Expose
>        private List<XYZMusicList> djLists = new ArrayList<XYZMusicList>();
>
>
> ==================================================================================
>
> XYZMusicList:
> @PersistenceCapable(identityType = IdentityType.APPLICATION,
> detachable="true")
> public class XYZMusicList {
>        @PrimaryKey
>        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
>        private Key id;
>
>        @Persistent
>        @Expose
>        private String nameOfList;
>
>        @Persistent(defaultFetchGroup="true")
>        @Expose
>        private List<Long> musicList = new ArrayList<Long>();
>
>        @Override
>        public boolean equals(Object obj) {
>                try{
>                        XYZMusicList listaAntigua = (XYZMusicList) obj;
>
>  if(this.nameOfList.compareToIgnoreCase(listaAntigua.nameOfList)==0)
>                                return true;
>                }catch(ClassCastException e){
>                        return false;
>                }
>                return false;
>        }
>
>
> ==================================================================================
>
> I've read the following page (http://www.datanucleus.org/products/
> accessplatform_1_1/jdo/orm/one_to_many_list.html<http://www.datanucleus.org/products/%0Aaccessplatform_1_1/jdo/orm/one_to_many_list.html>)
> but there are no
> examples with the annotations that google app engine uses.
>
> Any ideas on whats wrong?
>
> --
> 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
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-appengine-java%[email protected]>
> .
> For more options, visit this group at
> http://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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to