Re: Modification and deletion of data objects

From: Emanuele Maiarelli (evvdra..ahoo.it)
Date: Wed Jul 22 2009 - 14:58:04 EDT

  • Next message: Juan Toro Marty: "Re: updating..."

    Did u made em public accessible? (sourceforge or kinda) ________________________________ Da: Mike Kienenberger <mkienen..mail.com> A: use..ayenne.apache.org Inviato: Mercoledì 22 luglio 2009, 20:52:25 Oggetto: Re: Modification and deletion of data objects I wrote templates to generate interfaces as well as concrete classes for entities. It's been awhile since I looked at them, so I don't know if they're suitable for public consumption. On Wed, Jul 22, 2009 at 2:36 PM, Emanuele Maiarelli<evvdra..ahoo.it> wrote: > Hi agree with Mike, unless you have previous designed objects, i'd take DataObjects > as business objects. > > If u get previous designed objects u could work on the package 'entities' implementing > methods do adapt DataObjects to your needs. IDEs (at least NetBeans) got refactoring services > that can help u extracting interfaces from your classes, quickly. > > > > > > > ________________________________ > Da: Mike Kienenberger <mkienen..mail.com> > A: use..ayenne.apache.org > Inviato: Mercoledì 22 luglio 2009, 20:21:32 > Oggetto: Re: Modification and deletion of data objects > > I'm not aware of anyone else using separate objects for the business > level. I use the DataObjects as the business level objects. Yes, if > you decide to manually recreate data objects from business objects, > there will be some overhead. If I had to go that route, I'd create a > central management class and have it cache what objects I already know > exist in the data context the first time I reference them rather than > searching through the data context lists each time. > > One possiblity you could consider is to generate interfaces for your > DataObjects and then pass the interface rather than the DataObject > concrete class. This is what I tend to do in my projects. That way, > you can hide all of the Cayenne-specific methods from your other code > if you want. Other than some dependencies on Cayenne classes and a > couple of other methods, there's not a lot of difference between a > Cayenne data object and a "cayenne-free" business representation of > the same data. > > On Wed, Jul 22, 2009 at 2:15 PM, sridhar > devatha<devatha.sridha..mail.com> wrote: >> andrus, it is not clear(thank for reply though), i have to try over weekend. >> moreover, i can not use context, getEntityName in business object. I wrote >> business object to data object conversion in data object class it self. so I >> can use cayenne java api. I have to do it in the data object class which is >> sub class _data object, as it will have reference of business object. But, >> any way I am just surprised to see that there is no modification example >> code. Nobody uses cayenne data object from view layer to business/service >> layer to data access layer in web or enterprise applications(because it is >> cayenne data object with several other sensitive methods available. even if >> the methods are not there. I don't want to couple all the layers. ). I don't >> want to expose that sensitive object. more concrete examples will make it >> easier for new developers like me. >> I think what Mike Kienenberger(thanks mike , that is what I am also thinking >> at least. by the way what do you say about andrus reply) is telling may be >> correct. then i have to go thru all the new and modified registered objects >> in the data context to see if there is any thing existing. clearly this kind >> of searching will make it difficult for every data object updation and >> deletion. what do you say. >> >> On Wed, Jul 22, 2009 at 3:45 PM, Andrus Adamchik <andru..bjectstyle.org>wrote: >> >>> In your business object you will need to know 3 things to map it to a >>> Cayenne object: entity name, id, state (new or already persistent). Then you >>> can do something like this (pseudo code of course): >>> >>> X businessObject = ...; >>> DataObject cayenneObject; >>> Class cayenneObjectClass = context.getEntityResolver(). >>> getClassDescriptor(businessObject.getEntityName()).getObjectClass(); >>> if(bObject.isNew()) { >>> cayenneObject = context.newObject(cayenneObjectClass); >>> } >>> else { >>> cayenneObject = DataObjectUtils.objectForPK(cayenneObjectClass, >>> businessObject.getId()); >>> } >>> >>> // merge fields... >>> >>> Hope I answered the right question. >>> >>> Andrus >>> >>> >>> On Jul 22, 2009, at 7:47 AM, sridhar devatha wrote: >>> >>> Hi, >>>> >>>> I have view layer, business layer and data access layer. Each have >>>> separate >>>> class for carrying data. But, in data access layer, the object / class >>>> used >>>> for carrying data is respective data objects. I don't send these objects >>>> beyond my data access layer. Rather I create business objects populated >>>> with >>>> data object data. When the business functions call data access layer for >>>> any >>>> of the CRUD operations, they pass these business objects. I convert these >>>> business objects to data objects(So, I will create data object every time >>>> I >>>> need to convert business object to data object. So, what happens when the >>>> two data objects(one dataobject is created while retrieving data. We send >>>> the data as business object to business layer. one data object is created >>>> when the user returns the modified data in the form of business object) >>>> of >>>> the same class exist with the same data? How can I modify and delete the >>>> respective rows of these data objects? Please answer any body. I did not >>>> find any example that does the modification. >>>> >>>> >>>> Yours Sincerely, >>>> Devatha Sridhar >>>> >>> >>> >> >> >> -- >> >> Yours Sincerely, >> Devatha Sridhar >> > > > >



    This archive was generated by hypermail 2.0.0 : Wed Jul 22 2009 - 14:58:39 EDT