Re: Problem with char mapping
Gelhar Thank you very much for this info. It will help me a lot. Best regards Andre Legendre Gelhar, Wallace Joseph wrote: Andre Write a char to boolean conversion class. See http://db.apache.org/ojb/jdbc-types.html for details. Wally -Original Message- From: André Charles Legendre [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:36 AM To: OJB Users List Subject: Re: Problem with char mapping Armin Thnak you for your elements. But what is the good solutions when I want to use char size 1 (as substitute of Boolean) and Long ? Andre Le Mercredi 21 Janvier 2004 18:12, Armin Waibel a écrit : Hi again, A Leg wrote: Armin I use db-ojb-1.0.rc4. ok, in final 1.0 BOOLEAN datatype should be supported (but there is currently no test case for that, so no guarantee ;-)) And it seem that the problem is similar for numeric where ojb accept only BigDecimal : [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGT_Request target field: jobNum target field type: class java.lang.Long object value class: java.math.BigDecimal object value: 1] null I made the test with Long and with int, problem is the same if in database the column is Numeric. yep, OJB does the mapping as specified by sun and NUMERIC is mapped to BigDecimal. regards, Armin Andre Armin Waibel wrote: Hi Andre, A Leg wrote: Hi every body I have a variable name hold declare as char in code. (It was first a Boolean but I change as Boolean is not supported) Which version of OJB do you use? mapping is : and in postgres the column is bpchar (size 1) I get the following errors (see belo). I have to declare it as String in my java code to get it work. But I would like to declare it as char. Does any body able to explain that and to give a solution ? Think you need a field-conversion, because sun's mapping convention say that CHAR was mapped to String See http://db.apache.org/ojb/jdbc-types.html Write your own String2CharFieldConversion. You can find many examples in source code (..broker.accesslayer.conversion package) regards, Armin Best regards Andre Legendre [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGB_Request target field: hold target field type: char object value class: java.lang.String object value: N] null java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFie ldAc cessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAcc essI mpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set( Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflect ion(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(U nknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unkn own Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Un known Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unkno wn Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery (Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery (Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja va:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc esso rImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460 ) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.j ava:701) at java.lang.Thread.run(Thread.java:534) [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: PersistenceBrokerException during the execution of materializeObject: Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFie ldAc cessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAcc essI mpl.doSet(Unknown Sourc
RE: Problem with char mapping
Andre Write a char to boolean conversion class. See http://db.apache.org/ojb/jdbc-types.html for details. Wally -Original Message- From: André Charles Legendre [mailto:[EMAIL PROTECTED] Sent: Wednesday, January 21, 2004 10:36 AM To: OJB Users List Subject: Re: Problem with char mapping Armin Thnak you for your elements. But what is the good solutions when I want to use char size 1 (as substitute of Boolean) and Long ? Andre Le Mercredi 21 Janvier 2004 18:12, Armin Waibel a écrit : > Hi again, > > A Leg wrote: > > Armin > > > > I use db-ojb-1.0.rc4. > > ok, in final 1.0 BOOLEAN datatype should be supported (but there is > currently no test case for that, so no guarantee ;-)) > > > And it seem that the problem is similar for numeric where ojb accept > > only BigDecimal : > > > > [PersistentField] ERROR: while set field: > > object class[ org.compiere.mfg_scm.dbManager.MGT_Request > > target field: jobNum > > target field type: class java.lang.Long > > object value class: java.math.BigDecimal > > object value: 1] > > null > > > > I made the test with Long and with int, problem is the same if in > > database the column is Numeric. > > yep, OJB does the mapping as specified by sun and NUMERIC is mapped to > BigDecimal. > > regards, > Armin > > > Andre > > > > Armin Waibel wrote: > >> Hi Andre, > >> > >> A Leg wrote: > >>> Hi every body > >>> > >>> I have a variable name hold declare as char in code. (It was first > >>> a Boolean but I change as Boolean is not supported) > >> > >> Which version of OJB do you use? > >> > >>> mapping is : > >>> and > >>> in postgres the column is bpchar (size 1) > >>> > >>> I get the following errors (see belo). I have to declare it as > >>> String in my java code to get it work. But I would like to declare > >>> it as char. Does any body able to explain that and to give a > >>> solution ? > >> > >> Think you need a field-conversion, because sun's mapping convention > >> say that CHAR was mapped to String See > >> http://db.apache.org/ojb/jdbc-types.html > >> > >> Write your own String2CharFieldConversion. You can find many > >> examples in source code (..broker.accesslayer.conversion package) > >> > >> regards, > >> Armin > >> > >>> Best regards > >>> > >>> Andre Legendre > >>> > >>> [PersistentField] ERROR: while set field: > >>> object class[ org.compiere.mfg_scm.dbManager.MGB_Request > >>> target field: hold > >>> target field type: char > >>> object value class: java.lang.String > >>> object value: N] > >>> null > >>> java.lang.IllegalArgumentException > >>> at > >>>sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFie > >>>ldAc > >>>cessorImpl.java:68) > >>> > >>> at java.lang.reflect.Field.set(Field.java:519) > >>> at > >>>org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAcc > >>>essI > >>>mpl.doSet(Unknown Source) > >>> at > >>> org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set( > >>>Unknown Source) > >>> at > >>> org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflect > >>>ion(Unknown Source) > >>> at > >>> org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(U > >>>nknown Source) > >>> at > >>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unkn > >>>own Source) > >>> at > >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown > >>> Source) > >>> at > >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Un > >>>known Source) > >>> at > >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unkno > >>>wn Source) > >>> at > >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery > >>>(Unknown Source) > >>> at > >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery > >>>(Unknown Source) > >>> at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) > >>> at org.compiere.mfg_scm.
Re: Problem with char mapping
Armin Thnak you for your elements. But what is the good solutions when I want to use char size 1 (as substitute of Boolean) and Long ? Andre Le Mercredi 21 Janvier 2004 18:12, Armin Waibel a écrit : > Hi again, > > A Leg wrote: > > Armin > > > > I use db-ojb-1.0.rc4. > > ok, in final 1.0 BOOLEAN datatype should be supported (but there is > currently no test case for that, so no guarantee ;-)) > > > And it seem that the problem is similar for numeric where ojb accept > > only BigDecimal : > > > > [PersistentField] ERROR: while set field: > > object class[ org.compiere.mfg_scm.dbManager.MGT_Request > > target field: jobNum > > target field type: class java.lang.Long > > object value class: java.math.BigDecimal > > object value: 1] > > null > > > > I made the test with Long and with int, problem is the same if in > > database the column is Numeric. > > yep, OJB does the mapping as specified by sun and NUMERIC is mapped to > BigDecimal. > > regards, > Armin > > > Andre > > > > Armin Waibel wrote: > >> Hi Andre, > >> > >> A Leg wrote: > >>> Hi every body > >>> > >>> I have a variable name hold declare as char in code. (It was first a > >>> Boolean but I change as Boolean is not supported) > >> > >> Which version of OJB do you use? > >> > >>> mapping is : > >>> > >>> and in postgres the column is bpchar (size 1) > >>> > >>> I get the following errors (see belo). I have to declare it as String > >>> in my java code to get it work. But I would like to declare it as char. > >>> Does any body able to explain that and to give a solution ? > >> > >> Think you need a field-conversion, because sun's mapping convention > >> say that CHAR was mapped to String > >> See > >> http://db.apache.org/ojb/jdbc-types.html > >> > >> Write your own String2CharFieldConversion. You can find many examples > >> in source code (..broker.accesslayer.conversion package) > >> > >> regards, > >> Armin > >> > >>> Best regards > >>> > >>> Andre Legendre > >>> > >>> [PersistentField] ERROR: while set field: > >>> object class[ org.compiere.mfg_scm.dbManager.MGB_Request > >>> target field: hold > >>> target field type: char > >>> object value class: java.lang.String > >>> object value: N] > >>> null > >>> java.lang.IllegalArgumentException > >>> at > >>> sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAc > >>>cessorImpl.java:68) > >>> > >>> at java.lang.reflect.Field.set(Field.java:519) > >>> at > >>> org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessI > >>>mpl.doSet(Unknown Source) > >>> at > >>> org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set( > >>>Unknown Source) > >>> at > >>> org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflect > >>>ion(Unknown Source) > >>> at > >>> org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(U > >>>nknown Source) > >>> at > >>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unkn > >>>own Source) > >>> at > >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown > >>> Source) > >>> at > >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Un > >>>known Source) > >>> at > >>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unkno > >>>wn Source) > >>> at > >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery > >>>(Unknown Source) > >>> at > >>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery > >>>(Unknown Source) > >>> at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) > >>> at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at > >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja > >>>va:39) > >>> > >>> at > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso > >>>rImpl.java:25) > >>> > >>> at java.lang.reflect.Method.invoke(Method.java:324) > >>> at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) > >>> at sun.rmi.transport.Transport$1.run(Transport.java:148) > >>> at java.security.AccessController.doPrivileged(Native Method) > >>> at sun.rmi.transport.Transport.serviceCall(Transport.java:144) > >>> at > >>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460 > >>>) at > >>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.j > >>>ava:701) > >>> > >>> at java.lang.Thread.run(Thread.java:534) > >>> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: > >>> PersistenceBrokerException during the execution of materializeObject: > >>> Error setting field:hold in > >>> object:org.compiere.mfg_scm.dbManager.MGB_Request > >>> Error setting field:hold in > >>> object:org.compiere.mfg_scm.dbManager.MGB_Request > >>> java.lang.IllegalArgumentException > >>> at > >>> sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAc > >>>cessorImpl.java:68) > >>> > >>> at j
Re: Problem with char mapping
Hi again, A Leg wrote: Armin I use db-ojb-1.0.rc4. ok, in final 1.0 BOOLEAN datatype should be supported (but there is currently no test case for that, so no guarantee ;-)) And it seem that the problem is similar for numeric where ojb accept only BigDecimal : [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGT_Request target field: jobNum target field type: class java.lang.Long object value class: java.math.BigDecimal object value: 1] null I made the test with Long and with int, problem is the same if in database the column is Numeric. yep, OJB does the mapping as specified by sun and NUMERIC is mapped to BigDecimal. regards, Armin Andre Armin Waibel wrote: Hi Andre, A Leg wrote: Hi every body I have a variable name hold declare as char in code. (It was first a Boolean but I change as Boolean is not supported) Which version of OJB do you use? mapping is : and in postgres the column is bpchar (size 1) I get the following errors (see belo). I have to declare it as String in my java code to get it work. But I would like to declare it as char. Does any body able to explain that and to give a solution ? Think you need a field-conversion, because sun's mapping convention say that CHAR was mapped to String See http://db.apache.org/ojb/jdbc-types.html Write your own String2CharFieldConversion. You can find many examples in source code (..broker.accesslayer.conversion package) regards, Armin Best regards Andre Legendre [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGB_Request target field: hold target field type: char object value class: java.lang.String object value: N] null java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: PersistenceBrokerException during the execution of materializeObject: Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker
Re: Problem with char mapping
Armin I use db-ojb-1.0.rc4. And it seem that the problem is similar for numeric where ojb accept only BigDecimal : [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGT_Request target field: jobNum target field type: class java.lang.Long object value class: java.math.BigDecimal object value: 1] null I made the test with Long and with int, problem is the same if in database the column is Numeric. Andre Armin Waibel wrote: Hi Andre, A Leg wrote: Hi every body I have a variable name hold declare as char in code. (It was first a Boolean but I change as Boolean is not supported) Which version of OJB do you use? mapping is : and in postgres the column is bpchar (size 1) I get the following errors (see belo). I have to declare it as String in my java code to get it work. But I would like to declare it as char. Does any body able to explain that and to give a solution ? Think you need a field-conversion, because sun's mapping convention say that CHAR was mapped to String See http://db.apache.org/ojb/jdbc-types.html Write your own String2CharFieldConversion. You can find many examples in source code (..broker.accesslayer.conversion package) regards, Armin Best regards Andre Legendre [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGB_Request target field: hold target field type: char object value class: java.lang.String object value: N] null java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: PersistenceBrokerException during the execution of materializeObject: Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorIm
Re: Problem with char mapping
Hi Andre, A Leg wrote: Hi every body I have a variable name hold declare as char in code. (It was first a Boolean but I change as Boolean is not supported) Which version of OJB do you use? mapping is : and in postgres the column is bpchar (size 1) I get the following errors (see belo). I have to declare it as String in my java code to get it work. But I would like to declare it as char. Does any body able to explain that and to give a solution ? Think you need a field-conversion, because sun's mapping convention say that CHAR was mapped to String See http://db.apache.org/ojb/jdbc-types.html Write your own String2CharFieldConversion. You can find many examples in source code (..broker.accesslayer.conversion package) regards, Armin Best regards Andre Legendre [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGB_Request target field: hold target field type: char object value class: java.lang.String object value: N] null java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: PersistenceBrokerException during the execution of materializeObject: Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegating
Problem with char mapping
Hi every body I have a variable name hold declare as char in code. (It was first a Boolean but I change as Boolean is not supported) mapping is : and in postgres the column is bpchar (size 1) I get the following errors (see belo). I have to declare it as String in my java code to get it work. But I would like to declare it as char. Does any body able to explain that and to give a solution ? Best regards Andre Legendre [PersistentField] ERROR: while set field: object class[ org.compiere.mfg_scm.dbManager.MGB_Request target field: hold target field type: char object value class: java.lang.String object value: N] null java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:144) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:534) [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: PersistenceBrokerException during the execution of materializeObject: Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request Error setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request java.lang.IllegalArgumentException at sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAccessorImpl.java:68) at java.lang.reflect.Field.set(Field.java:519) at org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessImpl.doSet(Unknown Source) at org.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField.set(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.buildWithReflection(Unknown Source) at org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectFrom(Unknown Source) at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source) at org.compiere.mfg_scm.dbManager.TaskConsumer.showJob(Unknown Source) at org.compiere.mfg_scm.dbManager.DbManagerImpl.showJob(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:14