cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Zeigler <robe...@puregumption.com>
Subject Re: Cayenne and Spring (a Hibernate inspired question)
Date Wed, 27 Feb 2008 14:34:32 GMT
I've personally avoided Hibernate, so I can't speak to the spring/ 
hibernate stuff, sorry.

For sorting across multiple relationships, if you want to do it in- 
memory, you can always use cayenne's "Ordering".
You can add multiple orderings to any particular query, and you can  
also use multiple orderings on an in-memory list.
For example:

//sort an in-memory list of enrollments by the associated students'  
lastName then firstName
List<Ordering> orders = Arrays.asList(
	new Ordering("student.lastName",true),
	new Ordering("student.firstName",true));

Ordering.orderList(enrollments,orders);

//fetch a list of enrollments from the db, pre-ordered by the  
associated student lastname and firstname

SelectQuery query = new SelectQuery(Enrollment.class);
query.addOrdering("student.lastName",true);
query.addOrdering("student.firstName",true);

DataContext.getThreadDataContext().performQuery(query);

You can also create queries in the modeler tool, which supports adding  
multiple orderings.

HTH,

Robert


On Feb 27, 2008, at 2/277:51 AM , Kevin Menard wrote:

> Hi Marek,
>
> My Hibernate experience is limited to a single project that did not  
> use
> Spring, so it's hard for me to draw a fair comparison.  My take from
> passively watching on discussion lists (particularly the Tapestry one)
> is that Spring makes Hibernate usable in a way that Cayenne is out of
> the box.  It seems you know this already, though.
>
> In a Web app I have here, we an account creation operation split up  
> over
> three screens and it involves several different entities.  For this, I
> simply used a peer context per page and coalesce everything at the  
> end.
> This is a little bit older code and I would likely use a child context
> for it now.  The reason I did it this way is that while conceptually a
> single operation, completing any of the phases is a complete
> transaction.  If you want to enforce start to finish behavior, you  
> could
> use a single context shared via session.  Just watch yourself because
> it's a lot harder to enforce a workflow through a browser than it is
> through Swing.
>
> As for sorting across multiple relationships, I guess I would have to
> understand a little more as to what you want to do.  Simplest thing is
> to write your own Comparator, but you may want to look at mapping a
> query, and barring that, use SQLTemplate to achieve what you need in  
> the
> DB.
>
> I hope that helps.
>
> -- 
> Kevin Menard
> Servprise International, Inc.
> Remote reboot & power control for your network
> www.servprise.com                  +1 508.892.3823 x308
>
>
>> -----Original Message-----
>> From: Marek Wawrzyczny [mailto:marek_wawrzyczny@internode.on.net]
>> Sent: Tuesday, February 26, 2008 7:14 AM
>> To: user@cayenne.apache.org
>> Subject: Cayenne and Spring (a Hibernate inspired question)
>>
>> Hi,
>>
>> It has been a while since I last used Cayenne and that was within a
>> Swing ROP
>> context.
>>
>> More recently I have been involved in writing a Spring MVC/Hibernate
>> application. The experience has only made me fonder for Cayenne and
> now
>> it
>> appears that the team I'm in may consider ORM alternatives.
>>
>> My application is relatively simple CRUD application with the
> exception
>> of one
>> set of two screens, where all data entry culminates in a parent/child
>> interface (using Spring's AbstractWizardFormController ).
>>
>> The object graph can become somewhat complex, combining objects from
>> about 10
>> different entities. The pages ideally would require a long-running
>> session,
>> or rather a ObjectContext spanning several requests.
>>
>> I'm curious as to how well does Cayenne handle these types of
>> interfaces in
>> web applications.
>>
>> The other problem we're currently having is sorting across multiple
>> relationships.
>>
>> I'm curious as to other people's experiences in this area. I would
> love
>> to be
>> able to convince the team to move to Cayenne if the framework fits  
>> the
>> bill.
>>
>>
>> Kind regards,
>>
>> Marek Wawrzyczny


Mime
View raw message