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