
| Key: |
NUCRDBMS-186
|
| Type: |
Improvement
|
| Status: |
Closed
|
| Resolution: |
Fixed
|
| Priority: |
Major
|
| Assignee: |
Unassigned
|
| Reporter: |
Yang ZHONG
|
| Votes: |
0
|
| Watchers: |
0
|
|
If you were logged in you would be able to see more operations.
|
|
|
|
File Attachments:
|
1.
186.zip (3 kB)
|
|
Environment:
|
Linux, Java 5, DB2 9.1
|
|
|
The JDO specification (2.1 page 218 "Table 8: Default jdbc-type") specifies the default Java boolean mapping is JDBC BIT. However, DataNucleus 1.1.3 complains not supported on DB2. Maybe DataNucleus can be improved to simulate BIT Number type w/ SmallInt which is the closest Number type on DB2.
NFO: >> Exception thrown persisting objects
Throwable occurred: javax.jdo.JDOFatalInternalException: JDBC type BIT declared for field "org.datanucleus.test.Bool.bool" of java type java.lang.Boolean cant be mapped for this datastore.
at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:399)
at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:674)
at org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:694)
at org.datanucleus.test.Main.main(Main.java:52)
NestedThrowablesStackTrace:
JDBC type BIT declared for field "org.datanucleus.test.Bool.bool" of java type java.lang.Boolean cant be mapped for this datastore.
org.datanucleus.exceptions.NucleusException: JDBC type BIT declared for field "org.datanucleus.test.Bool.bool" of java type java.lang.Boolean cant be mapped for this datastore.
at org.datanucleus.store.rdbms.mapping.RDBMSMappingManager.getDatastoreMappingClass(RDBMSMappingManager.java:325)
at org.datanucleus.store.rdbms.mapping.RDBMSMappingManager.createDatastoreMapping(RDBMSMappingManager.java:530)
at org.datanucleus.store.mapped.mapping.SingleFieldMapping.prepareDatastoreMapping(SingleFieldMapping.java:57)
at org.datanucleus.store.mapped.mapping.SingleFieldMapping.initialize(SingleFieldMapping.java:46)
at org.datanucleus.store.mapped.mapping.MappingFactory.createMapping(MappingFactory.java:97)
at org.datanucleus.store.mapped.mapping.AbstractMappingManager.getMapping(AbstractMappingManager.java:248)
at org.datanucleus.store.rdbms.table.ClassTable.manageMembers(ClassTable.java:567)
at org.datanucleus.store.rdbms.table.ClassTable.manageClass(ClassTable.java:447)
at org.datanucleus.store.rdbms.table.ClassTable.initializeForClass(ClassTable.java:1086)
at org.datanucleus.store.rdbms.table.ClassTable.initialize(ClassTable.java:264)
at org.datanucleus.store.rdbms.RDBMSManager$ClassAdder.initializeClassTables(RDBMSManager.java:2642)
at org.datanucleus.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2549)
at org.datanucleus.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2200)
at org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:113)
at org.datanucleus.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:992)
at org.datanucleus.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:958)
at org.datanucleus.store.AbstractStoreManager.addClass(AbstractStoreManager.java:725)
at org.datanucleus.store.mapped.MappedStoreManager.getDatastoreClass(MappedStoreManager.java:358)
at org.datanucleus.store.rdbms.RDBMSManager.getPropertiesForGenerator(RDBMSManager.java:1510)
at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1078)
at org.datanucleus.ObjectManagerImpl.newObjectId(ObjectManagerImpl.java:2599)
at org.datanucleus.state.JDOStateManagerImpl.setIdentity(JDOStateManagerImpl.java:873)
at org.datanucleus.state.JDOStateManagerImpl.initialiseForPersistentNew(JDOStateManagerImpl.java:458)
at org.datanucleus.state.StateManagerFactory.newStateManagerForPersistentNew(StateManagerFactory.java:151)
at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1300)
at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1178)
at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:669)
at org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:694)
at org.datanucleus.test.Main.main(Main.java:52)
|
|
Description
|
The JDO specification (2.1 page 218 "Table 8: Default jdbc-type") specifies the default Java boolean mapping is JDBC BIT. However, DataNucleus 1.1.3 complains not supported on DB2. Maybe DataNucleus can be improved to simulate BIT Number type w/ SmallInt which is the closest Number type on DB2.
NFO: >> Exception thrown persisting objects
Throwable occurred: javax.jdo.JDOFatalInternalException: JDBC type BIT declared for field "org.datanucleus.test.Bool.bool" of java type java.lang.Boolean cant be mapped for this datastore.
at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:399)
at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:674)
at org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:694)
at org.datanucleus.test.Main.main(Main.java:52)
NestedThrowablesStackTrace:
JDBC type BIT declared for field "org.datanucleus.test.Bool.bool" of java type java.lang.Boolean cant be mapped for this datastore.
org.datanucleus.exceptions.NucleusException: JDBC type BIT declared for field "org.datanucleus.test.Bool.bool" of java type java.lang.Boolean cant be mapped for this datastore.
at org.datanucleus.store.rdbms.mapping.RDBMSMappingManager.getDatastoreMappingClass(RDBMSMappingManager.java:325)
at org.datanucleus.store.rdbms.mapping.RDBMSMappingManager.createDatastoreMapping(RDBMSMappingManager.java:530)
at org.datanucleus.store.mapped.mapping.SingleFieldMapping.prepareDatastoreMapping(SingleFieldMapping.java:57)
at org.datanucleus.store.mapped.mapping.SingleFieldMapping.initialize(SingleFieldMapping.java:46)
at org.datanucleus.store.mapped.mapping.MappingFactory.createMapping(MappingFactory.java:97)
at org.datanucleus.store.mapped.mapping.AbstractMappingManager.getMapping(AbstractMappingManager.java:248)
at org.datanucleus.store.rdbms.table.ClassTable.manageMembers(ClassTable.java:567)
at org.datanucleus.store.rdbms.table.ClassTable.manageClass(ClassTable.java:447)
at org.datanucleus.store.rdbms.table.ClassTable.initializeForClass(ClassTable.java:1086)
at org.datanucleus.store.rdbms.table.ClassTable.initialize(ClassTable.java:264)
at org.datanucleus.store.rdbms.RDBMSManager$ClassAdder.initializeClassTables(RDBMSManager.java:2642)
at org.datanucleus.store.rdbms.RDBMSManager$ClassAdder.addClassTablesAndValidate(RDBMSManager.java:2549)
at org.datanucleus.store.rdbms.RDBMSManager$ClassAdder.run(RDBMSManager.java:2200)
at org.datanucleus.store.rdbms.AbstractSchemaTransaction.execute(AbstractSchemaTransaction.java:113)
at org.datanucleus.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:992)
at org.datanucleus.store.rdbms.RDBMSManager.addClasses(RDBMSManager.java:958)
at org.datanucleus.store.AbstractStoreManager.addClass(AbstractStoreManager.java:725)
at org.datanucleus.store.mapped.MappedStoreManager.getDatastoreClass(MappedStoreManager.java:358)
at org.datanucleus.store.rdbms.RDBMSManager.getPropertiesForGenerator(RDBMSManager.java:1510)
at org.datanucleus.store.AbstractStoreManager.getStrategyValue(AbstractStoreManager.java:1078)
at org.datanucleus.ObjectManagerImpl.newObjectId(ObjectManagerImpl.java:2599)
at org.datanucleus.state.JDOStateManagerImpl.setIdentity(JDOStateManagerImpl.java:873)
at org.datanucleus.state.JDOStateManagerImpl.initialiseForPersistentNew(JDOStateManagerImpl.java:458)
at org.datanucleus.state.StateManagerFactory.newStateManagerForPersistentNew(StateManagerFactory.java:151)
at org.datanucleus.ObjectManagerImpl.persistObjectInternal(ObjectManagerImpl.java:1300)
at org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1178)
at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:669)
at org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:694)
at org.datanucleus.test.Main.main(Main.java:52) |
Show » |
Sort Order:
|