Not judging :) I’ve got the exact same problem here at work. I’ve been living with it for years. WO can be just as horrible as any other solution when properly applied :P
On Sep 25, 2015, at 9:11 AM, Markus Ruggiero <mailingli...@kataputt.com> wrote: > Thanks, Ramsey, I am fully aware of this. It is very unfortunate but this is > how things are at the moment. The external application whose functionality I > have to incorporate into a WO app has been written with Hybernate and raw > JDBC. A main part is the collection of product records according to some > rather extensive business rules. For "easy" customization they have resorted > to hard code tons of complex select queries just not in the code but in some > externally editable form. I'll eventually replace those by proper > EOQualifiers and some steering params. But as things are the customer ordered > this yesterday with the "urgent wish" to have it ready by last week. :-)))) > > Just in case you WOndered why.... > >> On 25.09.2015, at 17:57, Ramsey Gurley <rgur...@smarthealth.com> wrote: >> >> Look out for little Bobby Tables >> >> https://xkcd.com/327/ >> >> ;-) >> >> On Sep 25, 2015, at 2:26 AM, Markus Ruggiero <mailingli...@kataputt.com> >> wrote: >> >>> Thanks for all your help. Here is the code I am using now (might need some >>> more error checking) >>> >>> Wish you all a WOnder-full day >>> ---markus--- >>> >>> public NSArray<Product> findProducts(EOEditingContext ec, String query, >>> NSArray<String> queryParameters) { >>> >>> String resolvedQuery = query; >>> for (String aParameter : queryParameters) { >>> resolvedQuery = query.replaceFirst( "\\?", aParameter ); >>> } >>> >>> EOEntity entity = ERXEOAccessUtilities.entityNamed(ec, >>> Product.ENTITY_NAME); >>> String modelName = entity.model().name(); >>> NSArray<NSDictionary> rows = EOUtilities.rawRowsForSQL( ec, >>> modelName, resolvedQuery, null ); >>> >>> NSMutableArray<String> productCodes = new >>> NSMutableArray<String>(); >>> for (NSDictionary dict : rows) { >>> NSArray<String> values = dict.allValues(); // there is >>> only one value in the dict, but we get an Array >>> String productCode = values.objectAtIndex( 0 ); >>> if (productCode != null) { >>> productCodes.addObject( productCode ); >>> } >>> } >>> >>> EOQualifier qualifier = >>> Product.ATTRIBUTE_PRODUCT_CODE_ERXKEY.in( productCodes ); >>> NSArray<Product> results = Product.fetchProducts( ec, >>> qualifier, null ); >>> return results; >>> } >>> >>> // Example query: >>> SELECT prod.PRODUCT_CODE FROM PRODUCT prod, SITE site, INDUSTRY_PRODUCT >>> ipr, INDUSTRY ind WHERE prod.SITE_ID = site.ID AND site.SITE_NAME = '?' AND >>> ipr.PRODUCT_ID = prod.ID AND ipr.INDUSTRY_ID = ind.ID AND ind.INDUSTRY_NAME >>> ='ANH' AND prod.PUB_TRIGGER = 'Y' AND ((prod.EXPIRATION_DATE > SYSDATE) OR >>> (prod.EXPIRATION_DATE IS NULL)); >>> >>> Some are a lot more complex with inner and outer joins and embedded SELECT >>> FROM ... WHERE .... IN .... >>> >>> >>> >>>> On 24.09.2015, at 16:22, Markus Ruggiero <mailingli...@kataputt.com> wrote: >>>> >>>> Folks, >>>> >>>> What is the preferred way to fetch EOs when you have a db vendor specific >>>> "select id from ... where ....." statement? >>>> >>>> I need to interface with a legacy system where I have to incorporate the >>>> functionality of an external java tool into a Wonder app. This external >>>> tool executes raw SQL select statements which it reads from a file. All >>>> the statements are in the form given above and return a list of primary >>>> key values (single column fortunately). The tool then iterates through >>>> that list and does whatever it has to do (issuing tons of more raw sql). >>>> My problem is that these select statements are rather complex and there >>>> are many of them. It is just not feasible to replace those with proper >>>> EOQualifiers. In addition these statements are parameterized with ? so >>>> they can be precompiled and then used with different query values. However >>>> everything can be done with standard EOs as soon as I have those >>>> corresponding to the returned list of ids. >>>> >>>> Thanks a lot >>>> ---markus--- >>>> _______________________________________________ >>>> Do not post admin requests to the list. They will be ignored. >>>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>>> Help/Unsubscribe/Update your Subscription: >>>> https://lists.apple.com/mailman/options/webobjects-dev/mailinglists%40kataputt.com >>>> >>>> This email sent to mailingli...@kataputt.com >>> >>> _______________________________________________ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com >>> >>> This email sent to rgur...@smarthealth.com >> >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com