我在我的应用程序的后端使用Informix作为OR数据库和Spring + Hibernate。
问题是,我在String变量中创建了在数据库表中插入数据的查询。在这个查询字符串中,我正在为某些列使用类型转换(类似于:..ROW(street,city,country)::addressT..
,其中addressT是我在数据库中创建的类型)。
这里的问题在于Hibernates createSQLQuery(String query)
方法。当我传递查询字符串时,它会自动在该字符串中搜索命名参数(:namedParameter - 所以“冒号”符号和参数名称)并尝试用某些东西替换它。
结果是这样的查询:...ROW(street,city,country)?...
有没有办法禁用hibernate自动命名参数替换,还是有其他方法将本机查询转发到我的Informix数据库?
答案 0 :(得分:0)
您可以使用CAST(<expression> AS <type>)
表示法。
谨防其他系统强烈坚持'db@server:owner.table
'或'DATETIME(12:13:14) YEAR TO SECOND
'包含占位符,而不是合法的Informix语法结构。