Обсуждение: AbstracJdbc2ResultSet getColumnIndex throws missing column when using with Hibernate

Поиск
Список
Период
Сортировка

AbstracJdbc2ResultSet getColumnIndex throws missing column when using with Hibernate

От
"Hakan Cunier"
Дата:

Hello,

 

We have a table named as DYSMESSAGES (ID number, FROM varchar(100)…..)

 

We use hibernate with postgresql-jdbc-8.2-504 driver and PostgreSQLDialect. Our hql is “from Dysmessages”.

Hibernate convert this hql to “select dysmessage0.ID as ID204_, dysmessage0.FROM as FROM204_ from DYSMESSAGES dysmessage0” native sql format.

 

Our jvm Works on Jboss / Windows XP Pro Turkish / Turkish Regional Settings

 

Hibernate throws exception as no column found named as ID204_ in this resultset…

 

When we change regional settings to English (U.S.A) NO PROBLEM AT ALL.

 

Then we looked at AbstracJdbc2ResultSet class’s getColumnIndex method. It uses toLowerCase(). So problem is that. It should use toLowerCase(Locale.ENGLISH).

 

Because

The field returned from PostgreSql 8.2 is id204_ And toLowerCase() result is id204_

The field that hibernate requested is ID204_ And toLowerCase() result is ıd204_ . Because in Turkish I not means small i. The problem is that.

 

Dear jdbc-driver developer, can you help us about this problem.

 

Thank you in advance,

Hakan Cunier

 

 

Re: AbstracJdbc2ResultSet getColumnIndex throws missing column when using with Hibernate

От
Kris Jurka
Дата:

On Thu, 4 Jan 2007, Hakan Cunier wrote:

> We have a table named as DYSMESSAGES (ID number, FROM varchar(100)...)
>
> We use hibernate with postgresql-jdbc-8.2-504 driver and PostgreSQLDialect.
> Our hql is "from Dysmessages".
>
> Hibernate convert this hql to "select dysmessage0.ID as ID204_,
> dysmessage0.FROM as FROM204_ from DYSMESSAGES dysmessage0" native sql
> format.
>
> Our jvm Works on Jboss / Windows XP Pro Turkish / Turkish Regional Settings
>
> Hibernate throws exception as no column found named as ID204_ in this
> resultset.
>
> Then we looked at AbstracJdbc2ResultSet class's getColumnIndex method. It
> uses toLowerCase(). So problem is that. It should use
> toLowerCase(Locale.ENGLISH).
>

Fixed in CVS and backpatched to 8.0.

Kris Jurka