【问题标题】: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)

【问题讨论】:

    标签: java hibernate seam informix java-ee-5


    【解决方案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 中删除schemacatalog 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多