Gotcha and very cool solution. makeObjectsPerformSelector quickly sets the amount and then we sort. And for this client at this stage and at this budget... I will try it! And ERXS... that was a new one I just learned.
ERXS, ERXKEY, D2W == > a lot less coding/typing. On May 21, 2013, at 12:30 PM, Ramsey Gurley <[email protected]> wrote: > Depending on customer counts, doing this in memory may not be very efficient. > If you have a large number of customers, you may want to set up a stored > procedure and let the database do it. Depending on how the tables are > arranged, you may be able to do it with a single select, but it may not be > something you can construct easily with an EOFetchSpecification. > > I'd just go ahead and set that up in the first place, because eventually, > customers will grow to the point it will be necessary anyway. To get at your > actual question though, you could do something like > > //In Customer.java > private transient BigDecimal amount; > > public void loadOrderAmountForStore(Store store) { > amount = ... > } > > public BigDecimal amount() { > return amount; > } > > > NSArray<Customer> customers = ... > Store store = ... > NSSelector<BigDecimal> sel = new > NSSelector<BigDecimal>("loadOrderAmountByStore", new Class[]{Store.class}); > customers.makeObjectsPerformSelector(sel, new Object[]{store}); > customers = ERXS.desc("amount").sorted(customers); > return customers.objects(new NSRange(0, 5)); > > Ramsey > > On May 21, 2013, at 10:08 AM, James Cicenia wrote: > >> Actually, my question revolves around sorting a method that needs a >> parameter. >> >> For instance, I have an EO with the calculated value: >> >> totalOrderAmountByStore(Store store); >> >> How would you notationally write a sort to sort those EOs by that method? >> >> make sense? >> >> >> On May 21, 2013, at 11:41 AM, Jesse Tayler <[email protected]> wrote: >> >>> >>> well, I'm not certain I understand your question but if your method derives >>> that totalOrderAmount then you'd have to sort that in memory after getting >>> a reasonable number of objects from another fetch. >>> >>> often times in these situations I setup a kind of calculated integer and >>> store the result right on the User table, as an integer, so I can order >>> objects based on that result. >>> >>> you'd need to identify the places (likely relationships) where operations >>> might possibly change that number, and recalculate that result again at >>> runtime -- again, you'd be storing and saving the resulting number on the >>> user table for later sorting from the database. >>> >>> or maybe your issue is something else? >>> >>> >>> On May 21, 2013, at 12:33 PM, James Cicenia <[email protected]> wrote: >>> >>>> >>>> I have the following: >>>> >>>> customer <<---->> stores. >>>> >>>> I want the top five customers by order total for a store. >>>> >>>> I wrote a method: >>>> >>>> customer.totalOrderAmountByStore(Store store); >>>> >>>> What is the best way to sort that? >>>> >>>> Is there some cool ERXKEy? Make an abstract Entity in my Model? >>>> >>>> Wondering >>>> James >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list ([email protected]) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/jtayler%40oeinc.com >>>> >>>> This email sent to [email protected] >>> >> >> >> _______________________________________________ >> Do not post admin requests to the list. They will be ignored. >> Webobjects-dev mailing list ([email protected]) >> Help/Unsubscribe/Update your Subscription: >> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com >> >> This email sent to [email protected] > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
