cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hugi Thordarson <h...@karlmenn.is>
Subject Re: Updating totals in a multi-user environment
Date Fri, 31 Oct 2014 09:58:55 GMT
Hi all.

Once again, I’m looking into migrating to Cayenne from EOF :). One question though: Our
code depends heavily on raw row fetching (data rows) that traverses relationships. I haven’t
looked much at the Cayenne code, but do you believe adding support for this to Cayenne would
be a huge undertaking? Or does Cayenne perhaps provide an alternative method to achieve the
same results?

Cheers,
- hugi

// Hugi Thordarson
// http://www.loftfar.is/ <http://www.loftfar.is/>
// s. 895-6688



> On 31. okt. 2014, at 08:50, Andrus Adamchik <andrus@objectstyle.org> wrote:
> 
>> My problem with the solution is just the integration into Cayenne.
> 
> EJBQLQuery supports aggregates:
> 
> http://cayenne.apache.org/docs/3.1/cayenne-guide/queries.html#ejbqlquery
> 
> The problem with it is that the query itself can only be created from String using a
JPQL-like object query language, so you forfeit the type safety of SelectQuery. Still it is
a much better abstraction then SQLTemplate for instance. (And its integration into SelectQuery
is on the agenda). 
> 
> Andrus
> 
> 
>> On Oct 31, 2014, at 1:38 AM, Mark Stobbe <markstobbe85@gmail.com> wrote:
>> 
>> @Andrus, I see. Good to know how to do this in Cayenne.
>> 
>> @Michael, You are right. It makes more sense to let the database do the calculations.
It prevents the race conditions when updating and ensures totals to be correct.
>> My problem with the solution is just the integration into Cayenne.
>> Do you use some extra classes to keep the totals? It would be perfect if the expression
language could be extended to have an easy way to group and count associated entities!!
>> 
>> 
>>> On 30 okt. 2014, at 18:22, Michael Gentry <mgentry@masslight.net> wrote:
>>> 
>>> The utilities I mentioned also do SUM, AVG, MIN, and MAX ...
>>> 
>>> 
>>>> On Thu, Oct 30, 2014 at 12:35 PM, Mark Stobbe <markstobbe85@gmail.com>
wrote:
>>>> Oh, I also have the same problem with total cost with different
>>>> currencies...
>>>> 
>>>>> On Thu, Oct 30, 2014 at 5:09 PM, Mark Stobbe <markstobbe85@gmail.com>
wrote:
>>>>> 
>>>>> Hi Michael,
>>>>> 
>>>>> I would like to display the count in a table for a whole bunch of orders.
>>>>> In theory I could use a "group by"-query to get the numbers I need and
>>>>> with proper configured indices this should be fairly quick, I guess.
>>>>> 
>>>>> Is there a more transparent way of doing things, e.g. using lifecycle
>>>>> listeners, datachannel filters and such?
>>>>> 
>>>>> Mark
>>>>> 
>>>>> On Thu, Oct 30, 2014 at 4:15 PM, Michael Gentry <mgentry@masslight.net>
>>>>> wrote:
>>>>> 
>>>>>> Hi Mark,
>>>>>> 
>>>>>> Is there a performance reason why you don't just do a count on the
>>>>>> packages that match the order?
>>>>>> 
>>>>>> mrg
>>>>>> 
>>>>>> 
>>>>>> On Thu, Oct 30, 2014 at 11:00 AM, Mark Stobbe <markstobbe85@gmail.com>
>>>>>> wrote:
>>>>>>> Hi all,
>>>>>>> 
>>>>>>> I was wondering what is the best way to update totals in a multi-user
>>>>>>> environment. For example, let's say we have an Order which can
have one
>>>>>> or
>>>>>>> more Packages associated and we want to maintain a total package
count
>>>>>> on
>>>>>>> the Order entity. How would you update this value when the user
has the
>>>>>>> option to add/remove packages.
>>>>>>> 
>>>>>>> So the entities looks like:
>>>>>>> 
>>>>>>> *Order*
>>>>>>> --------
>>>>>>> id : bigint
>>>>>>> orderNumber : varchar
>>>>>>> nrOfPackages : int
>>>>>>> 
>>>>>>> *Package*
>>>>>>> ------------
>>>>>>> id : bigint
>>>>>>> packageNumber : varchar
>>>>>>> *fk_order : bigint*
>>>>>>> 
>>>>>>> What do you guys use to solve this?
>>>>>>> Mark
>>>>> 
>>>>> 
>> 
> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message