Java 生成的查询包含架构和目录名称

Java 生成的查询包含架构和目录名称,java,hibernate,seam,informix,java-ee-5,Java,Hibernate,Seam,Informix,Java Ee 5,我的问题和上面描述的一样 在生成的SQL中,Informix期望目录:schema.table,但实际生成的是 catalog.schema.table 这会导致语法错误。 设置: 没有效果。 我甚至从表注释中删除了schema和catalog,这导致了不同的问题:查询看起来像。table相同,用于将catalog和schema设置为空字符串 版本 接缝2.1.2 Hibernate注释3.3.1.GA.CP01 Hibernate 3.2.4.sp1.cp08 Hibernate Enti

我的问题和上面描述的一样

在生成的SQL中,Informix期望目录:schema.table,但实际生成的是

catalog.schema.table
这会导致语法错误。 设置:

没有效果。 我甚至从表注释中删除了schema和catalog,这导致了不同的问题:查询看起来像
。table
相同,用于将catalog和schema设置为空字符串

版本

  • 接缝2.1.2
  • Hibernate注释3.3.1.GA.CP01
  • Hibernate 3.2.4.sp1.cp08
  • Hibernate EntityManager 3.3.2.GAhibernate
  • JBoss4.3(类似于4.2.3)

请注意,有一个新的(截至2010-04-26)网页,其中包含有关将Informix软件与各种开源软件包(包括Hibernate)一起使用的信息。特别是,有一些可下载的代码可以改进Hibernate和Informix的交互作用。

我最后遇到了我所经历过的最糟糕的黑客之一:

冒号是有问题的字符,应该是“.”。
catalog:schema.table

Informix允许SQL语句中的注释
select{comment}*fromtometable

所以我决定

hibernate.default_catalog={
hibernate.default_schema=}schemaname
生成的代码如下所示

select * from {.}schemaname.tablename

informix查询解析器接受它。

*.hbm.xml

+1中删除
模式
目录
属性。谢谢,这为不同的hibernate版本提供了补丁,我稍后会检查。不幸的是,它是hibernate的不同版本,此外,构建失败“嵌入式错误:uanble无法执行po2xml:无法运行程序“po2xml”:CreateProcess error=2”po2xml是一个已知(即使不是众所周知的)程序-可能存在未记录的依赖关系。谷歌搜索显示Ubuntu可以使用它。选择这个答案,否则这个问题会出现在屏幕上unanswered@Shervin我仍然希望得到另一个答案也许其他人有更好的解决方案,我还没有时间检查Johnathans。我也遇到了同样的问题,通过从Entity中的@Table注释中删除“schema”和“catalog”解决了这个问题
select * from {.}schemaname.tablename