[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3551?page=c...
]
Laird Nelson commented on HHH-3551:
-----------------------------------
The analysis of the issue given by the original poster appears to be valid to me, and we
seem to be running into this issue with the latest Informix driver (3.70.JC1). I
don't see how the driver upgrade would have solved this issue. Can we reopen this
bug, if only to re-confirm?
Boolean substitution in informix
--------------------------------
Key: HHH-3551
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3551
Project: Hibernate Core
Issue Type: Bug
Components: query-sql
Affects Versions: 3.3.1
Environment: Hibernate 3.2
Informix 9.40
Reporter: Rouvignac
Original Estimate: 2h
Remaining Estimate: 2h
HQL Query :
select order from Order order where order.printed = ?
Parameter :
true, false, Boolean.TRUE or Boolean.FALSE
When the request is executed we get the following error :
SQLSTATE: IX000
SQL CODE: -674
674: Routine (equal) can not be resolved.
If as parameter we use "t" ot "f" everything works fine but it will
not work with other DB.
As a workaround we can use :
property name="hibernate.query.substitutions">true t, false
f</property>
I investigated in Dialects :
Dialect.java
public String toBooleanValueString(boolean bool) {
return bool ? "1" : "0";
}
PostgreSQLDialect.java
public String toBooleanValueString(boolean bool) {
return bool ? "true" : "false";
}
InformixDialect.java uses Dialect.java toBooleanValueString method.
In my mind toBooleanValueString should be added to InformixDialect.java as follow :
public String toBooleanValueString(boolean bool) {
return bool ? "t" : "f";
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira