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 :
> >>> <field-descriptor name="hold" column="HOLD" jdbc-type="CHAR"/>
> >>> 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 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)
> >>> rethrown as org.apache.ojb.broker.metadata.MetadataException: Error
> >>> setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request
> >>> 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)
> >>> Caused by: java.lang.IllegalArgumentException
> >>> at
> >>> sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAc
> >>>cessorImpl.java:68)
> >>>
> >>> at java.lang.reflect.Field.set(Field.java:519)
> >>> ... 23 more
> >>> 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)
> >>> rethrown as org.apache.ojb.broker.metadata.MetadataException: Error
> >>> setting field:hold in object:org.compiere.mfg_scm.dbManager.MGB_Request
> >>> 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)
> >>> Caused by: java.lang.IllegalArgumentException
> >>> at
> >>> sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFieldAc
> >>>cessorImpl.java:68)
> >>>
> >>> at java.lang.reflect.Field.set(Field.java:519)
> >>> ... 23 more
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to