Hi,

Regarding generic methods for presistance, has anybody been doing
that?
Like this for example:

public static <T> T readDataObject(Class<T> type, Long id) {
                Object object = null;
                PersistenceManager pm = PMF.get().getPersistenceManager();
                pm.setDetachAllOnCommit(true);
        try {
                object = pm.getObjectById(type,id);
        } finally {
            pm.close();
        }
        return type.cast(object);
}

You call it like this:

Beverage b =  PersistenceHandler.readDataObject(Beverage.class,
beverageId);

Will this kind of code work?

Thanks.
FF

On Sep 1, 11:54 am, funkforce <[email protected]> wrote:
> Hi,
>
> First of all, thanks for posting, it really helps me.
>
> objectuser  : Good post and the link was really nice.
> Albert Attard  : Thanks for the examples, it shows that you have to
> wright lots of code to manage your own relationships (which I was
> trying to avoid).
> leszek: This is what I did and I was trying to avoid to handle
> persistence issues as much as I could.
>
> I will re-model and start over and see how I should go on.
>
> Thanks.
>
> FF
>
> On Sep 1, 9:52 am, leszek <[email protected]> wrote:
>
>
>
> > You can follow something like that
>
> > class Parent {
> >   ....
> >   @Persistent
> >   private List<Long/Key> childList;
>
> >   // non Persistent
> >   private List<Child> list;
> >   ...
>
> > }
>
> > class Child {
>
> >   �...@primarykey
> >    private Long/Key key;
> >    ...
>
> > }
>
> > // before save Parent
> >   private void beforeSave(EntityManager em,Parent pa) {
> >      if (pa.getList() != null) {
> >        List<Long> chList = new ArrayList<Long>();
> >        for (Child ch : pa.getList) {
> >          pm.makePersistent(ch);
> >          pm.flush();
> >          chList.add(ch.getKey());
> >        }
> >        pa.setChildList(chList);
> >     }
> >   }
>
> >   private void afterLoad(EntityManager em,Parent pa)  {
> >     List<Child> chList = new ArrayList<Child>();
> >     for (Long key : pa.getChildList()) {
> >        Child ch = pm.getObjectById(Child.class,key);
> >        chList.add(ch);
> >     }
> >     pa.setList(chList);
> >   }
>
> >   PersistenManager pm;
> >   ....
>
> >   // main service
> >   Parent pa = pm..getObjectById(...)
> >   afterLoad(pm,pa);
> >   ...
> >   ...
> >   beforeSave(pm,pa);
> >   pm.makePersistent(pa);
>
> >   List<Parent> pList = pm.queryExecute();
> >   for (Parent pa : pList) {
> >     afterLoad(pm,pa);
> >   }
> >   ...
> >   // etc
>
> > In order to avoid repeating the same beforeSave and afterLoad for all
> > Entity classes having "onowned" relationship you can apply Annotation
> > and, by  the use of reflection, develop generic approach for all
> > classes having this feature.- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
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