Hi,
I just want to make sure I understand the error I'm getting and if it
is to be expected, or if it _should_ work, but I'm messing something
else up.
I have the following relationship:
ExternalLotCode <<-> LotCode
Each entity is in a different EOModel, AND in a different Database.
When I fetch records from ExternalLotCode, I see the following SQL
execute:
Dec 02 12:13:47 BakeryManagementJavaClient[61270]
(ERXNSLogLog4jBridge.java:46) DEBUG NSLog - evaluateExpression:
<com.webobjects.jdbcadaptor.MicrosoftPlugIn$MicrosoftExpression:
""SELECT t0.External_Lot_Code_ID, t0.External_Lot_Code_Value,
t0.Lot_Code_ID FROM dbo.MSDynamics_Lot_Code t0 WHERE
UPPER(t0.External_Lot_Code_Value) LIKE UPPER(?) ESCAPE '\'"
withBindings: 1:"8P31808269%"(externalLotCodeValue)>
Which, based on the following, it seems to be working just fine so far:
Dec 02 12:13:48 BakeryManagementJavaClient[61270]
(ERXNSLogLog4jBridge.java:46) DEBUG NSLog - 45 row(s) processed
But when EOF then goes to select (fault?) the related LotCode record,
I get the following error:
Dec 02 12:13:48 BakeryManagementJavaClient[61270]
(ERXDatabaseContextDelegate.java:153) INFO
er.transaction.adaptor.Exceptions - Database Exception occured:
java.lang.IllegalStateException: The object with globalID
_EOIntegralKeyGlobalID[LotCode (java.lang.Long)143937] could not be
found in the database. This could be result of a referential integrity
problem with the database. An empty fault could not be created because
the object's class could not be determined (e.g. the GID is temporary
or it is for an abstract entity).
There _is_ a corresponding record in the Lot_Code table that has
143937 as the PK. I'm assuming that EOF is choking on it because the
Lot_Code table is in a different database than what
"External_Lot_Code" is in.
This is a simple one-attribute PK to FK relationship. No fancy
qualifiers or anything else.
Should this work or no?
Dave
On Dec 2, 2008, at 10:26 AM, Mike Schrag wrote:
On Dec 2, 2008, at 7:21 AM, David Avendasora wrote:
Shouldn't EOF recognize that the tables are in two different
databases and not try to do one select statement that "joins" them?
If I have EntityA in database 1, and EntityA in database 2, and a
relationship between them, and try to do a fetch whose qualifier
crosses the relationship it will fail.
We run into this a lot because we have tables in many different
Oracle schemas.
I think Mike had some ideas about a possible patch for this, but
then again I seem to remember the result was to run away.
There is no real "patch" for this ... You can make it not fail, but
you'll never really make it "nice". My idea for it stems from the
work i did on the IMAP EOF Adaptor, where you have a problem along
of a similar type, which is that IMAP supports evaluating SOME types
of qualifiers on the server, but not the full set of EO qualifiers.
To expose a nice interface to IMAP, you have to basically write a
join system in-memory that has pluggable optimizers of which some
can be implemented on the server and some in-memory with post
processing. I actually have a bunch of pieces of this laying
around, but nothing that made it into a final form, but this is
another one that can definitely be done, it's just going to be ugly.
ms
_______________________________________________
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:
http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com
This email sent to [EMAIL PROTECTED]
_______________________________________________
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:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [EMAIL PROTECTED]