在Hibernate中为Informix数据库中的列键入强制转换

时间:2010-11-01 19:23:42

标签: java sql hibernate spring informix

我在我的应用程序的后端使用Informix作为OR数据库和Spring + Hibernate。 问题是,我在String变量中创建了在数据库表中插入数据的查询。在这个查询字符串中,我正在为某些列使用类型转换(类似于:..ROW(street,city,country)::addressT..,其中addressT是我在数据库中创建的类型)。

这里的问题在于Hibernates createSQLQuery(String query)方法。当我传递查询字符串时,它会自动在该字符串中搜索命名参数(:namedParameter - 所以“冒号”符号和参数名称)并尝试用某些东西替换它。 结果是这样的查询:...ROW(street,city,country)?...

有没有办法禁用hibernate自动命名参数替换,还是有其他方法将本机查询转发到我的Informix数据库?

1 个答案:

答案 0 :(得分:0)

您可以使用CAST(<expression> AS <type>)表示法。

谨防其他系统强烈坚持'db@server:owner.table'或'DATETIME(12:13:14) YEAR TO SECOND'包含占位符,而不是合法的Informix语法结构。