Issue Details (XML | Word | Printable)

Key: JDO-83
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Michelle Caisse
Reporter: Michelle Caisse
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
JDO

Using datastore identity, JPOX expects an identity field for an embedded class (ADDRID for Address)

Created: 13/Jul/05 06:27 AM   Updated: 23/Apr/06 02:38 AM
Return to search
Component/s: tck2
Affects Version/s: None
Fix Version/s: JDO 2 beta

Time Tracking:
Not Specified

Resolution Date: 23/Apr/06 02:38 AM


 Description  « Hide
Affected tests (39):
org.apache.jdo.tck.api.persistencemanager.extent.GetExtentWithInstancesMadePersistentViaReachability
org.apache.jdo.tck.api.persistencemanager.extent.GetExtentWithSubclasses
org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable
org.apache.jdo.tck.api.persistencemanagerfactory.GetPersistenceManagerFactoryByPropertiesInstance
org.apache.jdo.tck.extents.CloseAll
org.apache.jdo.tck.extents.CloseOfExtentIteratorIsIteratorSpecific
org.apache.jdo.tck.extents.GetCandidateClass
org.apache.jdo.tck.extents.GetPersistenceManager
org.apache.jdo.tck.extents.HasSubclassesFalse
org.apache.jdo.tck.extents.HasSubclassesTrue
org.apache.jdo.tck.extents.InstancesDeletedPriorToIterationNotReturned
org.apache.jdo.tck.extents.InstancesPersistedPriorToIterationReturned
org.apache.jdo.tck.extents.IteratorHasNextFalseAfterExtentClose
org.apache.jdo.tck.extents.IteratorMutatingMethods
org.apache.jdo.tck.extents.IteratorNextAfterExtentCloseAll
org.apache.jdo.tck.extents.Iterators
org.apache.jdo.tck.mapping.CompletenessTest
org.apache.jdo.tck.models.embedded.SecondClassObjectsTrackTheirChanges
org.apache.jdo.tck.models.embedded.SecondClassObjectsTrackTheirChanges
org.apache.jdo.tck.query.Cast
org.apache.jdo.tck.query.ComparingCollectionFieldToNull
org.apache.jdo.tck.query.ComparingPersistentAndNonPersistentInstance
org.apache.jdo.tck.query.DenoteUniquenessInFilter
org.apache.jdo.tck.query.MultipleIdenticalImports
org.apache.jdo.tck.query.NavigationThroughACollectionField
org.apache.jdo.tck.query.NavigationThroughANullValuedField
org.apache.jdo.tck.query.NavigationThroughReferencesUsesDotOperator
org.apache.jdo.tck.query.NullCollectionsAndContainsMethod
org.apache.jdo.tck.query.NullCollectionsAndIsEmpty
org.apache.jdo.tck.query.ParameterBoundToDifferentPM
org.apache.jdo.tck.query.SeparateNamespaceForTypeNames
org.apache.jdo.tck.query.SetterReplacePreviousValues
org.apache.jdo.tck.query.StartsWithAndEndsWith
org.apache.jdo.tck.query.SupportedCollectionMethods
org.apache.jdo.tck.query.operators.EqualityAndComparisonsBetweenDateFieldsAndParameters
org.apache.jdo.tck.query.operators.EqualityAndComparisonsBetweenStringFieldsAndParameters
org.apache.jdo.tck.query.operators.StringConcatenation
org.apache.jdo.tck.transactions.SetNontransactionalRead
org.apache.jdo.tck.transactions.WhenNontransactionalReadIsFalse
 test(org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable)javax.jdo.JDODataStoreException: Insert request failed: INSERT INTO datastoreidentity0.COMPANIES (FOUNDEDDATE,ADDRID,CITY,COUNTRY,"STATE",STREET,ZIPCODE,ID,"NAME") VALUES (?,?,?,?,?,?,?,?,?)
at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:298)
at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:1735)
at org.jpox.store.StoreManager.insert(StoreManager.java:663)
at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3088)
at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3061)
at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:976)
at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1012)
at org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable.createObjects(MakePersistentAndInstancesNotReachable.java:85)
at org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable.test(MakePersistentAndInstancesNotReachable.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:203)
at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128)
at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)
NestedThrowablesStackTrace:
ERROR 42X14: 'ADDRID' is not a column in table or VTI 'DATASTOREIDENTITY0.COMPANIES'.
at org.apache.derby.iapi.error.StandardException.newException(StandardException.java)
at org.apache.derby.impl.sql.compile.ResultColumn.bindResultColumnByName(ResultColumn.java)
at org.apache.derby.impl.sql.compile.ResultColumnList.bindResultColumnsByName(ResultColumnList.java)
at org.apache.derby.impl.sql.compile.InsertNode.bind(InsertNode.java)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java)
at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(EmbedPreparedStatement20.java)
at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(EmbedPreparedStatement30.java)
at org.apache.derby.jdbc.Driver30.newEmbedPreparedStatement(Driver30.java)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java)
at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java)
at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:303)
at org.jpox.store.rdbms.request.InsertRequest.execute(InsertRequest.java:153)
at org.jpox.store.rdbms.table.ClassTable.insert(ClassTable.java:1735)
at org.jpox.store.StoreManager.insert(StoreManager.java:663)
at org.jpox.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3088)
at org.jpox.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3061)
at org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:976)
at org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1012)
at org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable.createObjects(MakePersistentAndInstancesNotReachable.java:85)
at org.apache.jdo.tck.api.persistencemanager.lifecycle.MakePersistentAndInstancesNotReachable.test(MakePersistentAndInstancesNotReachable.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:203)
at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128)
at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #216049 Wed Jul 13 00:15:26 UTC 2005 mcaisse JDO-83 Persist application field addrid
Files Changed
MODIFY /incubator/jdo/trunk/tck20/test/sql/derby/applicationidentity/schema.sql
MODIFY /incubator/jdo/trunk/tck20/test/jdo/applicationidentity/org/apache/jdo/tck/pc/company/package.jdo
MODIFY /incubator/jdo/trunk/tck20/test/orm/applicationidentity/org/apache/jdo/tck/pc/company/package-derby.orm
MODIFY /incubator/jdo/trunk/tck20/test/sql/derby/datastoreidentity/schema.sql
MODIFY /incubator/jdo/trunk/tck20/test/orm/datastoreidentity/org/apache/jdo/tck/pc/company/package-derby.orm

Michelle Caisse made changes - 13/Jul/05 08:11 AM
Field Original Value New Value
Assignee Erik Bengtson [ ebengtso ] Michelle Caisse [ mcaisse ]
Michelle Caisse added a comment - 13/Jul/05 08:12 AM
From Craig Russell:

The addrid field is a persistent field in the application domain, and should be mapped in both application and datastore identity cases. I think the easiest way to do it is to add field mapping and column ADDRID to the schema and mapping files. Even though addrid is not the identity field, it's still a persistent field in the model and needs to be mapped.

I also notice that in the package.jdo for the company model, Address is defined thus:

        <class name="Address" requires-extent="false">
            <field name="addrid" persistence-modifier="none"/>
        </class>

This isn't right, as the addrid field is an application field that needs to be set to the application value in order for comparisons to succeed.

Michelle Caisse made changes - 13/Jul/05 09:17 AM
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]
Michelle Caisse made changes - 01/Nov/05 06:47 AM
Status Resolved [ 5 ] Closed [ 6 ]
Michael Bouschen added a comment - 23/Apr/06 02:35 AM
Reopened to set the Fix Version/s field to JDO 2 beta.

Michael Bouschen made changes - 23/Apr/06 02:35 AM
Status Closed [ 6 ] Reopened [ 4 ]
Resolution Fixed [ 1 ]
Michael Bouschen made changes - 23/Apr/06 02:38 AM
Fix Version/s JDO 2 beta [ 12310683 ]
Resolution Fixed [ 1 ]
Status Reopened [ 4 ] Closed [ 6 ]