Re: Problem with char mapping

2004-01-22 Thread A Leg
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

2004-01-22 Thread Gelhar, Wallace Joseph
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

2004-01-22 Thread André Charles Legendre
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

2004-01-21 Thread Armin Waibel
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

2004-01-21 Thread A Leg
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

2004-01-21 Thread Armin Waibel
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