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 :
<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]






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



Reply via email to