Ute:
Yes. Its in /Library/Frameworks/ and is linked in the project. Other
inserts work fine - the sql for the Card insert just before the
Diagnosis insert is correct, and I've been able to insert other EO''s
as well, just not Diagnoses.
Tobias
On Jan 1, 2008, at 5:01 PM, ute Hoffmann wrote:
Hi,
I had a similiar problem. Did you put the
FrontBasePlugIn.frameworkinto your Frameworks folder and link it
into your Project as Framework.
Regards
Ute
Am 01.01.2008 um 20:36 schrieb Tobias Crawley:
I'm having an odd issue that maybe someone on the list can shed
some light on. I recently started a new project, and decided to
try Frontbase instead of my usual MySQL. I am having an issue
where EOF is not supplying the pk (id) on insert for one of my
EO's. The EO in question (Diagnosis) is a join table between a
Card and a DiagnosisCode, with some additional information. The
relationship between Card and DiagnosisCode is not flattened.
I create a Card in an EC via Card.createCard() (from the stock
Velocity template), then create a Diagnosis in the same EC via
Diagnosis.createDiagnosis(), join the two via
card.addToDiagnosesRelationship( diagnosis ). Then I save the EC,
and get the following log output (the underlined $$$ prefixed
output is from a primaryKeyInTransaction() call before the save to
make sure it is properly generating the pk, and the bold output is
the insert/constraint failure):
Jan 01 14:08:22 YellowCard[2323] (_Card.java:80) DEBUG
org.carepartners.yellowcard._Card - updating patientName from
null to test
Jan 01 14:08:22 YellowCard[2323] (_Card.java:91) DEBUG
org.carepartners.yellowcard._Card - updating patientNumber from
null to test
Jan 01 14:08:22 YellowCard[2323] (_Card.java:47) DEBUG
org.carepartners.yellowcard._Card - updating careType from null
to Hospice
Jan 01 14:08:22 YellowCard[2323] (_Diagnosis.java:49) DEBUG
org.carepartners.yellowcard._Diagnosis - updating card from null
to <org.carepartners.yellowcard.Card pk:"null">
Jan 01 14:08:22 YellowCard[2323] (_Diagnosis.java:67) DEBUG
org.carepartners.yellowcard._Diagnosis - updating diagnosisCode
from null to <org.carepartners.yellowcard.DiagnosisCode pk:"1000001">
Jan 01 14:08:22 YellowCard[2323] (_Card.java:234) DEBUG
org.carepartners.yellowcard._Card - adding
<org.carepartners.yellowcard.Diagnosis pk:"null"> to diagnoses
relationship
Jan 01 14:08:22 YellowCard[2323] (_Diagnosis.java:38) DEBUG
org.carepartners.yellowcard._Diagnosis - updating altDescription
from null to asf
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - === Begin Internal Transaction
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - evaluateExpression:
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression:
"VALUES (SELECT UNIQUE FROM "Diagnosis")">
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - fetch canceled
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - 1 row(s) processed
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - === Commit Internal Transaction
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:38)
INFO NSLog - $$$$ diagnosis.primaryKeyInTransaction(): 1000001
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - === Begin Internal Transaction
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - evaluateExpression:
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression:
"VALUES (SELECT UNIQUE FROM "Card")">
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - fetch canceled
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - 1 row(s) processed
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - === Commit Internal Transaction
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - === Begin Internal Transaction
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - evaluateExpression:
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression:
"INSERT INTO "Card"("referringMDID", "roomNumber",
"patientNumber", "userID", "patientName", "dateSeen", "careType",
"processed", "cPTCodeID", "locationID", "patientDateOfBirth",
"id") VALUES (1000004, NULL, 'test', 1000001, 'test', TIMESTAMP
'2008-01-01 14:07:14.000', 'Hospice', 0, 1000003, 1000002,
TIMESTAMP '1928-01-01 14:07:14.000', 1000001)">
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - evaluateExpression:
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression:
"INSERT INTO "Diagnosis"("cardID", "diagnosisCodeID",
"altDescription") VALUES (1000001, 1000001, 'asf')">
Jan 01 14:08:22 YellowCard[2323] (ERXDatabaseContextDelegate.java:
106) INFO er.transaction.adaptor.Exceptions - Database Exception
occured: com.webobjects.eoaccess.EOGeneralAdaptorException:
EvaluateExpression failed:
<com.webobjects.jdbcadaptor.FrontbasePlugIn$FrontbaseExpression:
"INSERT INTO "Diagnosis"("cardID", "diagnosisCodeID",
"altDescription") VALUES (1000001, 1000001, 'asf')">:
Next exception:SQL State:23 subclass = 00 -- error code:
357 -- msg: Exception condition 357. Integrity constraint
violation (CHECK, Diagnosis.NOT_NULL_Diagnosis__id(\"id\" IS NOT
NULL)).
Next exception:SQL State:23 subclass = 00 -- error code:
359 -- msg: Exception condition 359. Integrity constraint
violation (NULL in PRIMARY KEY, Diagnosis.PRIMARY_KEY_Diagnosis_id
(id=NULL)).
Next exception:SQL State:40 subclass = 00 -- error code:
363 -- msg: Exception condition 363. Transaction rollback.
Jan 01 14:08:22 YellowCard[2323] (ERXNSLogLog4jBridge.java:44)
DEBUG NSLog - === Rollback Internal Transaction
My versions: Java 1.5 WO 5.3/Tiger Frontbase 4.2.8 w/the latest
FrontBasePlugIn from Wonder (built from CVS today)
My model for Diagnosis:
{
attributes = (
{
allowsNull = Y;
columnName = altDescription;
name = altDescription;
prototypeName = varchar255;
},
{columnName = cardID; name = cardID; prototypeName = id; },
{columnName = diagnosisCodeID; name = diagnosisCodeID;
prototypeName = id; },
{name = id; prototypeName = id; }
);
attributesUsedForLocking = (id);
className = "org.carepartners.yellowcard.Diagnosis";
classProperties = (altDescription, card, diagnosisCode);
externalName = Diagnosis;
fetchSpecificationDictionary = {};
name = Diagnosis;
primaryKeyAttributes = (id);
relationships = (
{
destination = Card;
isMandatory = Y;
isToMany = N;
joinSemantic = EOInnerJoin;
joins = ({destinationAttribute = id; sourceAttribute =
cardID; });
name = card;
},
{
destination = DiagnosisCode;
isMandatory = Y;
isToMany = N;
joinSemantic = EOInnerJoin;
joins = ({destinationAttribute = id; sourceAttribute =
diagnosisCodeID; });
name = diagnosisCode;
}
);
}
I do not know how EOF works internally to assign the PK, so I'm
not sure where to look. Any insight would be appreciated.
Thanks,
Tobias
_______________________________________________
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/u.hoffmann%
40tt-pixelmind.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]