Thanks for all your suggestions so far, but I think none is what can really 
help me. Let me explain a bit more.

Cleanup does not only mean delete the Product from the database but first I 
have to build an XML structure that contains the product data and related data 
from several to-one and to-many relationships. This XML is then sent to a 
remote application. Only when that application (not under my control) agrees I 
am allowed to finally remove that Product. 

- Having a clone of the Product entity without the restricting qualifier is 
therefore not such a good idea, as I need to maintain all the relationships 
from and to that entity. Nightmare!

- Just removing the restricting qualifier is an option, but then there are 
dozens of locations throughout the app where products are fetched, some through 
D2WQueryPage, others explicitly for populating selection lists, yet others when 
generating XML data. Nightmare!

- Having a second instance of the app with a property set to remove the 
restricting qualifier might be a way to go, but some cleanup related actions 
must be explicitly done by an interactive user. What instance should a user 
connect to? Depending on what he/she wants to do, it's the one where the 
cleanup works or not.

So basically my question still is, how do I circumvent that restricting 
qualifier? Might there be a way to do this with a delegate somewhere down the 
EOF stack? At what point in processing is the final qualifier built? I could 
set a delegate and if needed remove the restriction from the generated SQL 
statement. But how and where would I do this? Never had to go that deep into 
advanced EOF land.

Thanks for your help
---markus---

PS the IllegalArgumentException mentioned in my first posting was due to 
rawRows bringing back all the attribute names in upper case but the id 
attribute is in lower case. So this has been resolved, but even then I only get 
faults that are later on resolved against the database - again including the 
restricting qualifier. Even objectsWithPrimaryKey() uses the qualifier.


On 10.04.2013, at 13:52, Markus Ruggiero <[email protected]> wrote:

> Folks,
> 
> I have an entity Product with an attribute isVisible. Throughout my 
> application I only work with products that are visible. So I have specified a 
> qualifier visible='Y' right in the model. This qualifier is automatically 
> AND-added to each and every query agains Product. Fine, I am happy with this.
> 
> Now the customer needs an automatic cleanup function. This function must 
> fetch products that are not visible. Cleanup requires more than just deletion 
> from the database. I cannot do the cleanup with raw rows, I do need real EOs. 
> How can I override that model qualifier? When fetching raw rows I do get the 
> data but I was not able to convert the dictionaries to EOs. The ID attribute 
> is in the dictionary (which is the PK) but I get an IllegalArgumentException 
> telling me "does not contain primary key information for entity Product"
> 
> This is the code I use (maybe there is a problem there)
> 
> NSMutableArray<Product> products = new NSMutableArray<Product>();
> NSArray<NSDictionary<String, Object>> rawRows = EOUtilities.rawRowsForSQL( 
> ec, "ec2", "select * from PRODUCT where visible = 'N' ", null);
> for (NSDictionary row : rawRows) {
>       Product prod = (Product) EOUtilities.objectFromRawRow( ec, 
> Product.ENTITY_NAME, row );
>       products.addObject( prod );
> }
> 
> Thanks for your help
> ---markus---
> 
> _______________________________________________
> 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/mailinglists%40kataputt.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]

Reply via email to