生成的查询包含架构和目录名称
Posted
技术标签:
【中文标题】生成的查询包含架构和目录名称【英文标题】:Generated queries contain schema and catalog name 【发布时间】:2010-05-20 11:50:12 【问题描述】:我遇到了和here描述的同样的问题
在生成的 SQL 中,Informix 需要 catalog:schema.table
,但实际生成的是
catalog.schema.table
这会导致语法错误。 设置:
hibernate.default_catalog=
hibernate.default_schema=
没有效果。
我什至从表注释中删除了架构和目录,这导致了不同的问题:查询看起来像 ..table
一样,将目录和架构设置为空字符串。
版本
接缝 2.1.2 休眠注释 3.3.1.GA.CP01 休眠 3.2.4.sp1.cp08 休眠EntityManager 3.3.2.GAhibernate Jboss 4.3(类似于 4.2.3)【问题讨论】:
【参考方案1】:请注意,有一个新的(截至 2010 年 4 月 26 日)网页 http://www.iiug.org/opensource,其中包含有关将 Informix 软件与各种开源软件包(包括 Hibernate)一起使用的信息。特别是,有可下载的代码改进了 Hibernate 和 Informix 的交互。
【讨论】:
+1 谢谢,这为不同的休眠版本提供了补丁,我稍后会检查。 不幸的是,这是一个不同版本的hibernate,除了构建失败'嵌入错误:无法执行po2xml:无法运行程序“po2xml”:CreateProcess error = 2' po2xml 是一个已知的(即使不是众所周知的)程序 - 它可能存在未记录的依赖关系。用 Google 搜索显示它适用于 Ubuntu。【参考方案2】:我最终得到了我做过的最糟糕的黑客攻击之一:
冒号是有问题的字符,应该是 '.' catalog:schema.table
.
Informix 允许在 SQL 语句中使用 cmets select comment * from sometable
所以我设置了
hibernate.default_catalog=
hibernate.default_schema=schemaname
生成的代码如下所示
select * from .schemaname.tablename
informix 查询解析器接受。
【讨论】:
选择此答案为已接受,否则此问题将显示为未回答 @Shervin 我仍然希望得到另一个答案,也许其他人有更好的解决方案,我没有时间检查 Johnathans。 我遇到了同样的问题,通过从 Entity 中的 @Table 注释中删除 'schema' 和 'catalog' 解决了【参考方案3】:从*.hbm.xml
中删除schema
和catalog
属性。
【讨论】:
以上是关于生成的查询包含架构和目录名称的主要内容,如果未能解决你的问题,请参考以下文章