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]

Reply via email to