Re: problem with simple relationship in 1.2B1

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Apr 18 2006 - 05:48:12 EDT

  • Next message: Andrus Adamchik: "Re: Attempting to implement a "MATCH ALL VALUES" expression at the application level."

    Bryan,

    nothing comes to mind right away. Could you possibly create a Jira
    issue with a DataMap that contains the entities involved - I'll run
    it in debugger and see what's going on.

    Andrus

    On Apr 17, 2006, at 10:04 PM, Bryan Lewis wrote:

    > I'm getting a Commit Exception that I can't figure out. It happens in
    > commitChanges() with a single new object. When I log the inserted
    > object
    > I get the expected:
    >
    > {<ObjectId:BRADTask, TEMP:000001F6214E0102>; new
    > [...
    > creationDate=>2006-04-17 13:46:32.375
    > author=>{<ObjectId:BRADUserInfo, USERNAME=blewis>}
    > application=>{<ObjectId:BRADApplication, OID=185>}]}
    >
    > Note that the last line shows a non-null "application" relationship.
    > However, the key for it is missing in the SQL:
    >
    > [QueryLogger] INSERT INTO BRADTask (APPLICATION_ID, AUTHOR_ID,
    > CREATIONDATE, ... )
    > VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    > [QueryLogger] [batch bind: NULL, NULL, '2006-04-17
    > 10:27:08.687', ... ]
    > [QueryLogger] *** error.java.sql.SQLException: ORA-01400: cannot
    > insert
    > NULL into ("...."BRADTASK"."APPLICATION_ID")
    >
    > I see nothing unusual about the definition of the relationship in the
    > modeler.
    >
    > <db-entity name="BRADTASK">
    > <db-attribute name="APPLICATION_ID" type="INTEGER"
    > isMandatory="true"/>
    > ...
    >
    > <db-relationship name="application" source="BRADTASK"
    > target="BRADAPPLICATION" toMany="false">
    > <db-attribute-pair source="APPLICATION_ID" target="OID"/>
    > </db-relationship>
    >
    > This didn't occur on version 1.2M10; it began with B1 and continues
    > with
    > B2. I've reproduced it on Oracle 8 and PostgreSQL, in case it was
    > another Oracle-only weirdness but it isn't.
    >
    > Stack trace with 1.2B2 on Postgres:
    >
    > org.postgresql.util.PSQLException: ERROR: null value in column
    > "application_id" violates not-null constraint
    > at
    > org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse
    > (QueryExecutorImpl.java:1501)
    > at
    > org.postgresql.core.v3.QueryExecutorImpl.processResults
    > (QueryExecutorImpl.java:1286)
    > at
    > org.postgresql.core.v3.QueryExecutorImpl.execute
    > (QueryExecutorImpl.java:336)
    > at
    > org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch
    > (AbstractJdbc2Statement.java:2540)
    > at
    > org.objectstyle.cayenne.access.jdbc.BatchAction.runAsBatch
    > (BatchAction.java:164)
    > at
    > org.objectstyle.cayenne.access.jdbc.BatchAction.performAction
    > (BatchAction.java:114)
    > at
    > org.objectstyle.cayenne.access.DataNodeQueryAction.runQuery
    > (DataNodeQueryAction.java:95)
    > at
    > org.objectstyle.cayenne.access.DataNode.performQueries
    > (DataNode.java:309)
    > at
    > org.objectstyle.cayenne.access.DataDomainFlushAction.runQueries
    > (DataDomainFlushAction.java:255)
    > at
    > org.objectstyle.cayenne.access.DataDomainFlushAction.flush
    > (DataDomainFlushAction.java:177)
    > at
    > org.objectstyle.cayenne.access.DataDomain.onSyncFlush
    > (DataDomain.java:827)
    > at
    > org.objectstyle.cayenne.access.DataDomain$2.transform
    > (DataDomain.java:798)
    > at
    > org.objectstyle.cayenne.access.DataDomain.runInTransaction
    > (DataDomain.java:853)
    > at org.objectstyle.cayenne.access.DataDomain.onSync
    > (DataDomain.java:795)
    > at
    > org.objectstyle.cayenne.access.DataContext.flushToParent
    > (DataContext.java:1217)
    > at
    > org.objectstyle.cayenne.access.DataContext.commitChanges
    > (DataContext.java:1121)
    >
    > On Oracle the trace is the same, until it gets down to the jdbc level,
    > of course.
    >
    >



    This archive was generated by hypermail 2.0.0 : Tue Apr 18 2006 - 05:48:42 EDT