Re: problem setting 1: n relationship

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Thu May 22 2003 - 11:25:42 EDT

  • Next message: Andrus Adamchik: "Re: invalid console appender config..."

    This is something I recenly have been working on. Let me take a look at
    this tonight.

    Andrus

    > i'm using mysql 4.0.7-gamma-nt, jdk-version 1.4.1_02-b06,
    > jdbc-driver:mysql-connector-java-3.0.6-stable-bin.jar
    > that's what the object looks like after retrieving it from the database:
    > (System.out.println)
    > {[ Adresse => (org.objectstyle.cayenne.access.ToManyList)
    > PLZ => -956712157
    > Name => hornsupertown
    > ]<oid: akj.database.cayenneDataObjects.PLZ: <PLZ: -956712157>; state:
    > committed>}
    >
    >
    > stack-trace:
    >
    > WARN DefaultOperationObserver: Query exception:
    > org.objectstyle.cayenne.query.SelectQuery
    >
    > java.lang.IllegalStateException: An attempt to use uninitialized
    > DataObjectMatchTranslator: [attributes: null, values: {PLZ=-956712157}]
    >
    > at
    > org.objectstyle.cayenne.access.trans.DataObjectMatchTranslator.keys(DataObje
    > ctMatchTranslator.java:135)
    >
    > at
    > org.objectstyle.cayenne.access.trans.QualifierTranslator.appendObjectMatch(Q
    > ualifierTranslator.java:167)
    >
    > at
    > org.objectstyle.cayenne.access.trans.QualifierTranslator.endBinaryNode(Quali
    > fierTranslator.java:317)
    >
    > at
    > org.objectstyle.cayenne.exp.ExpressionTraversal.traverseExpression(Expressio
    > nTraversal.java:129)
    >
    > at
    > org.objectstyle.cayenne.exp.ExpressionTraversal.traverseExpression(Expressio
    > nTraversal.java:84)
    >
    > at
    > org.objectstyle.cayenne.access.trans.QualifierTranslator.doTranslation(Quali
    > fierTranslator.java:111)
    >
    > at
    > org.objectstyle.cayenne.access.trans.SelectTranslator.createSqlString(Select
    > Translator.java:142)
    >
    > at
    > org.objectstyle.cayenne.access.trans.QueryAssembler.createStatement(QueryAss
    > embler.java:136)
    >
    > at org.objectstyle.cayenne.access.DataNode.runSelect(DataNode.java:386)
    >
    > at
    > org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:290)
    >
    > at
    > org.objectstyle.cayenne.access.DataDomain.performQueries(DataDomain.java:494
    > )
    >
    > at
    > org.objectstyle.cayenne.access.DataContext.performQueries(DataContext.java:8
    > 24)
    >
    > at
    > org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:881
    > )
    >
    > at
    > org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:753
    > )
    >
    > at
    > org.objectstyle.cayenne.access.util.RelationshipDataSource.updateListData(Re
    > lationshipDataSource.java:94)
    >
    > at
    > org.objectstyle.cayenne.access.ToManyList.getObjectList(ToManyList.java:113)
    >
    > at org.objectstyle.cayenne.access.ToManyList.add(ToManyList.java:121)
    >
    > at
    > org.objectstyle.cayenne.CayenneDataObject.addToManyTarget(CayenneDataObject.
    > java:327)
    >
    > at
    > org.objectstyle.cayenne.CayenneDataObject.setReverseRelationship(CayenneData
    > Object.java:404)
    >
    > at
    > org.objectstyle.cayenne.CayenneDataObject.setToOneTarget(CayenneDataObject.j
    > ava:375)
    >
    > at akj.database.cayenneDataObjects._Adresse.setPLZ(_Adresse.java:41)
    >
    > at
    > akj.ui.general.dbFieldPanes.adresseDbFieldPane.save(adresseDbFieldPane.java:
    > 127)
    >
    > at akj.ui.Dataframe.btnSave_actionPerformed(Dataframe.java:207)
    >
    > at akj.ui.Dataframe.access$3(Dataframe.java:24)
    >
    > at akj.ui.Dataframe$5.actionPerformed(Dataframe.java:157)
    >
    > at
    > javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
    >
    > at
    > javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButto
    > n.java:1817)
    >
    > at
    > javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:4
    > 19)
    >
    > at
    > javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
    >
    > at
    > javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener
    > .java:245)
    >
    > at java.awt.Component.processMouseEvent(Component.java:5134)
    >
    > at java.awt.Component.processEvent(Component.java:4931)
    >
    > at java.awt.Container.processEvent(Container.java:1566)
    >
    > at java.awt.Component.dispatchEventImpl(Component.java:3639)
    >
    > at java.awt.Container.dispatchEventImpl(Container.java:1623)
    >
    > at java.awt.Component.dispatchEvent(Component.java:3480)
    >
    > at
    > java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
    >
    > at
    > java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
    >
    > at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
    >
    > at java.awt.Container.dispatchEventImpl(Container.java:1609)
    >
    > at java.awt.Window.dispatchEventImpl(Window.java:1590)
    >
    > at java.awt.Component.dispatchEvent(Component.java:3480)
    >
    > at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
    >
    > at
    > java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
    > va:197)
    >
    > at
    > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
    > :150)
    >
    > at
    > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    >
    > at
    > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    >
    > at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
    >
    > WARN DefaultOperationObserver: global exception
    >
    > org.objectstyle.cayenne.CayenneRuntimeException: Query exception.
    >
    > at
    > org.objectstyle.cayenne.access.util.SelectObserver.nextQueryException(Select
    > Observer.java:146)
    >
    > at
    > org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:312)
    >
    > at
    > org.objectstyle.cayenne.access.DataDomain.performQueries(DataDomain.java:494
    > )
    >
    > at
    > org.objectstyle.cayenne.access.DataContext.performQueries(DataContext.java:8
    > 24)
    >
    > at
    > org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:881
    > )
    >
    > at
    > org.objectstyle.cayenne.access.DataContext.performQuery(DataContext.java:753
    > )
    >
    > at
    > org.objectstyle.cayenne.access.util.RelationshipDataSource.updateListData(Re
    > lationshipDataSource.java:94)
    >
    > at
    > org.objectstyle.cayenne.access.ToManyList.getObjectList(ToManyList.java:113)
    >
    > at org.objectstyle.cayenne.access.ToManyList.add(ToManyList.java:121)
    >
    > at
    > org.objectstyle.cayenne.CayenneDataObject.addToManyTarget(CayenneDataObject.
    > java:327)
    >
    > at
    > org.objectstyle.cayenne.CayenneDataObject.setReverseRelationship(CayenneData
    > Object.java:404)
    >
    > at
    > org.objectstyle.cayenne.CayenneDataObject.setToOneTarget(CayenneDataObject.j
    > ava:375)
    >
    > at akj.database.cayenneDataObjects._Adresse.setPLZ(_Adresse.java:41)
    >
    > at
    > akj.ui.general.dbFieldPanes.adresseDbFieldPane.save(adresseDbFieldPane.java:
    > 127)
    >
    > at akj.ui.Dataframe.btnSave_actionPerformed(Dataframe.java:207)
    >
    > at akj.ui.Dataframe.access$3(Dataframe.java:24)
    >
    > at akj.ui.Dataframe$5.actionPerformed(Dataframe.java:157)
    >
    > at
    > javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
    >
    > at
    > javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButto
    > n.java:1817)
    >
    > at
    > javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:4
    > 19)
    >
    > at
    > javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
    >
    > at
    > javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener
    > .java:245)
    >
    > at java.awt.Component.processMouseEvent(Component.java:5134)
    >
    > at java.awt.Component.processEvent(Component.java:4931)
    >
    > at java.awt.Container.processEvent(Container.java:1566)
    >
    > at java.awt.Component.dispatchEventImpl(Component.java:3639)
    >
    > at java.awt.Container.dispatchEventImpl(Container.java:1623)
    >
    > at java.awt.Component.dispatchEvent(Component.java:3480)
    >
    > at
    > java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
    >
    > at
    > java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
    >
    > at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
    >
    > at java.awt.Container.dispatchEventImpl(Container.java:1609)
    >
    > at java.awt.Window.dispatchEventImpl(Window.java:1590)
    >
    > at java.awt.Component.dispatchEvent(Component.java:3480)
    >
    > at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
    >
    > at
    > java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
    > va:197)
    >
    > at
    > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
    > :150)
    >
    > at
    > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    >
    > at
    > java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    >
    > at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
    >
    > Caused by: java.lang.IllegalStateException: An attempt to use
    > uninitialized DataObjectMatchTranslator: [attributes: null, values:
    > {PLZ=-956712157}]
    >
    > at
    > org.objectstyle.cayenne.access.trans.DataObjectMatchTranslator.keys(DataObje
    > ctMatchTranslator.java:135)
    >
    > at
    > org.objectstyle.cayenne.access.trans.QualifierTranslator.appendObjectMatch(Q
    > ualifierTranslator.java:167)
    >
    > at
    > org.objectstyle.cayenne.access.trans.QualifierTranslator.endBinaryNode(Quali
    > fierTranslator.java:317)
    >
    > at
    > org.objectstyle.cayenne.exp.ExpressionTraversal.traverseExpression(Expressio
    > nTraversal.java:129)
    >
    > at
    > org.objectstyle.cayenne.exp.ExpressionTraversal.traverseExpression(Expressio
    > nTraversal.java:84)
    >
    > at
    > org.objectstyle.cayenne.access.trans.QualifierTranslator.doTranslation(Quali
    > fierTranslator.java:111)
    >
    > at
    > org.objectstyle.cayenne.access.trans.SelectTranslator.createSqlString(Select
    > Translator.java:142)
    >
    > at .java:136)
    >
    > at org.objectstyle.cayenne.access.DataNode.runSelect(DataNode.java:386)
    >
    > at
    > org.objectstyle.cayenne.access.DataNode.performQueries(DataNode.java:290)
    >
    > ... 38 more
    >
    > ----- Original Message -----
    > From: "Holger Hoffstätte" <holge..izards.de>
    > To: <cayenne-use..bjectstyle.org>
    > Sent: Thursday, May 22, 2003 12:24 PM
    > Subject: Re: problem setting 1: n relationship
    >
    >
    >> johannes schmidt wrote:
    >> > ..snippety..
    >> > But when I retrieve the PLZ object from the database using a query
    >> (see
    > the
    >> > code at the end of this mail), I get the following Exception:
    >> > java.lang.IllegalStateException: An attempt to use uninitialized
    >> DataObjectMatchTranslator: [attributes: null, values:
    >> {PLZ=-474230981}]
    >> >
    >> > Does anybody know what my problem is all about?
    >>
    >> Johannes,
    >>
    >> offhand I couldn't see anything too wrong with your code; please post
    >> some more information about the circumstances of this exception (JDK,
    >> full stack trace, database + version, JDBC driver version..anything).
    >> This will help us pinpoint the reason better.
    >>
    >> Holger



    This archive was generated by hypermail 2.0.0 : Thu May 22 2003 - 11:25:43 EDT