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 :
> >>> <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(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 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)
> >>> 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(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)
> >>> Caused by: java.lang.IllegalArgumentException
> >>> at  
> >>>sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFie
> >>>ldAc
> >>>cessorImpl.java:68)
> >>>
> >>> at java.lang.reflect.Field.set(Field.java:519)
> >>> ... 23 more
> >>> 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)
> >>> 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(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)
> >>> Caused by: java.lang.IllegalArgumentException
> >>> at  
> >>>sun.reflect.UnsafeCharacterFieldAccessorImpl.set(UnsafeCharacterFie
> >>>ldAc
> >>>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]


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

Reply via email to