Hibernate 中 Informix 数据库列的类型转换

发布于 2024-09-30 08:08:02 字数 463 浏览 5 评论 0原文

我在应用程序的后端使用 Informix 作为 OR 数据库并使用 Spring + Hibernate。 问题是,我在字符串变量中进行了在数据库表中插入数据的查询。在此查询字符串中,我对某些列使用类型转换(如下所示: ..ROW(street,city,country)::addressT.. 其中 addressT 是我在数据库中创建的类型)。

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

是否有任何方法可以禁用休眠自动命名参数替换,或者是否有其他方法可以转发对我的 Informix 数据库的本机查询?

I am using Informix for a OR database and Spring + Hibernate on the backend of my application.
The thing is, I make in a String variable the query that inserts data in the database table. In this query string I'm using type casting for some columns (something like this: ..ROW(street,city,country)::addressT.. where addressT is the type I made in the database).

The problem here lays in Hibernates createSQLQuery(String query) method. When I pass it the query string, it automatically searches in that string for named parameters (:namedParameter - so the "colon" sign and the name of the parameter) and tries to replace it with something.
The result is a query like this: ...ROW(street,city,country)?...

Is there any way to disable hibernates automatic named parameter replacement or is there any other way to forward the native query to my Informix database?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你怎么这么可爱啊 2024-10-07 08:08:02

您也许可以使用 CAST(AS) 表示法。

请注意其他系统坚持认为 'db@server:owner.table' 或 'DATETIME(12:13:14) YEAR TO SECOND' 包含占位符,而不是合法的 Informix句法结构。

You might be able to use the CAST(<expression> AS <type>) notation.

Beware of other system's adamant insistence that 'db@server:owner.table' or 'DATETIME(12:13:14) YEAR TO SECOND' contain placeholders, not legitimate Informix syntactic constructs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文