Re: weird sql generation problem
Re: weird sql generation problem
- Subject: Re: weird sql generation problem
- From: Tim Worman <email@hidden>
- Date: Mon, 31 Aug 2009 15:41:36 -0700
On Aug 31, 2009, at 3:27 PM, Ray Kiddy wrote:
On Aug 31, 2009, at 2:54 PM, Tim Worman wrote:
WO'ers:
My app is crashing with an sql error that looks like this:
SQL ERROR - [position 572, near 'WHERE' in 'IBUTION t0 WHERE
(t0.is_d'] (1) field 'id' not found in table 'FUND_DISTRIBUTION'.
SQL: SELECT t0.account_number, t0.appt_begin_date, t0.appt_num,
t0.cost_center_code, t0.create_date, t0.dist_dept_code,
t0.dist_num, t0.dist_off_above, t0.dist_payrate_hour,
t0.dist_payrate_month, t0.dist_percent, t0.dist_perq, t0.dist_step,
t0.dos_earnings_type, t0.emp_full_name, t0.emp_status,
t0.employee_id, t0.fund_distribution_id, t0.fund_number,
t0.hrly_as_mthly_est, t0.id, t0.is_debit, t0.job_id,
t0.location_code, t0.modify_date, t0.pay_begin_date,
t0.pay_end_date, t0.project, t0.sub_code, t0.sub_location,
t0.title_code, t0.work_study_pgm FROM FUND_DISTRIBUTION t0 WHERE
(t0.is_debit = 'false' AND (t0.dos_earnings_type <> 'STP' AND
t0.dos_earnings_type <> 'RES' AND t0.job_id = 219)) ORDER BY
t0.pay_end_date DESC
In my model there is no "id" attribute for the FundDistribution
entity. The table obviously doesn't have a matching column hence
the error. But why is sql being generated for an attribute that
doesn't exist? I looked at FundDistribution.plist in the model and
there is no "id" attribute in there.
Your model must contain an attribute with some name (which could be
very different than "id") and which has a columnName of "id". You
will not see this by looking at the attribute names.
There are no attributes with the column name "id" either. I've
confirmed this both through Entity Modeler and by viewing the raw
plist file for the entity.
I've recently been refactoring a large monolithic model/framework
into smaller focused models/frameworks. As part of this I've also
been moving to utilizing prototypes. In some cases I'm using the
"id" prototype for certain primary/foreign key attributes. Could
this be a genesis of this issue?
It certainly could be. You could write your EOModels to stdout and
see what they look like. Prototypes are put in by the tools and so
if you look at the model as it exists in memory, you should be able
to see what it has and what it really does not have. You can either
dump the model out to a temporary file with the writeToFile()
method, the contents of which you can then read in as a
NSDictionary, or iterate through the entities and write out the
lists of attributes. If you look at the columnName() of the
attributes, you should be able to see the bad value.
I'll try this approach and see what happens.
The destination database is OpenBase.
This should not matter. Unless there is an EOSQLExpression bug
specific to OB, the problem is in the model.
I was thinking that one place it could matter is if I'm using
EOJDBCOpenBasePrototypes that there could be something funky going on
there that I didn't see in the version of this entity in my monolithic
model (since it isn't using prototypes at all).
- ray
Thanks Ray!!
Tim Worman
UCLA GSE&IS
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden