Re: Modification and deletion of data objects

From: Mike Kienenberger (mkienen..mail.com)
Date: Wed Jul 22 2009 - 15:18:53 EDT

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

    No, but here's the two templates that are most relevent. This is
    probably against Cayenne 1.2 (2.0 with different package names).

    If they're helpful, great! If not, sorry, it's as-is at the moment --
    it's really not that difficult to come up with your own. I might have
    more up-to-date versions, but that's what's in front of me at the
    moment.

    On Wed, Jul 22, 2009 at 2:58 PM, Emanuele Maiarelli<evvdra..ahoo.it> wrote:
    > 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 - 15:19:47 EDT