如何在休眠中使用 CreateSqlQuery 查询不同的数据库?

Posted

技术标签:

【中文标题】如何在休眠中使用 CreateSqlQuery 查询不同的数据库?【英文标题】:How to query different databases using CreateSqlQuery in hibernate? 【发布时间】:2012-01-09 02:41:51 【问题描述】:

我有以下代码:

Query query = this.getSession().createSqlQuery("select * from db@server:table where 1=1");
List list = query.list();

引发此错误:

org.hibernate.QueryException:并非所有命名参数都已设置: [table] [select * from db@server:table where 1=1]

似乎:被认为是参数前缀。 如何在不同的数据库之间进行查询?目前,我使用的数据库是informix11

【问题讨论】:

【参考方案1】:

我认为您应该有一个不同的 Hibernate Session Factory 为您拥有的每个数据库生成不同的会话。

您不能将一个会话连接到多个数据库。

【讨论】:

以上是关于如何在休眠中使用 CreateSqlQuery 查询不同的数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用休眠本机查询获取单个记录字符串值?

使用休眠防止 SQL 注入

使用休眠防止 SQL 注入

Hibernate使用createSqlQuery进行模糊查询时找不到数据

将休眠查询的结果转置为 POJO 列表

如何在 DataGridView 中显示 nHibernate CreateSQLQuery 的结果?