commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <skitch...@apache.org>
Subject Re: [beanutils] Issue with RowSetDynaClass and oracle10g drivers...
Date Wed, 15 Jun 2005 07:26:19 GMT
On Tue, 2005-06-14 at 15:20 +0200, Grégory Joseph wrote:

> When I run this with oracle10g and latest drivers (ojdbc14 version
> 10.1.0.4 I believe), I get
> org.apache.commons.beanutils.ConversionException: Cannot assign value of
> type 'java.sql.Date' to property 'foo' of type 'java.sql.Timestamp'
> 
> If you need explanations, do this:
>             rs.next();
>             System.out.println("from resultset : " +
> rs.getObject("month").getClass().getName());
>             System.out.println("from metadata : " +
> rs.getMetaData().getColumnClassName(1));
> 
> As you'd see if you'd try this out, the metadata says the column is of
> type java.sql.Timestamp, while the resultset says it's a java.sql.Date
> !
> 
> Seems oracle guys think that because that behaviour is documented, it
> is fine: http://forums.oracle.com/forums/thread.jsp?forum=99&thread=300473&tstart=105&trange=15
> 
> Would a Converter help us, maybe?

Method BasicDynaBean.set is the one throwing this exception. And it
doesn't use converters, so a custom converter won't help.

I suggest you subclass RowSetDynaClass and override the copy method to
fudge the conversion. 

Or maybe subclass BasicDynaBean and override the set method to handle
the problem, then subclass RowSetDynaClass and override createDynaBean
to return instances of your custom bean that handles broken Oracle
resultsets.

Of course if Oracle would fix their broken software that would be a much
better solution...

Regards,

Simon



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message