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