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

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 中删除schemacatalog 属性。

【讨论】:

以上是关于生成的查询包含架构和目录名称的主要内容,如果未能解决你的问题,请参考以下文章

创建二维码却生成了目录问题

vue源码分析之目录架构

win2012活动目录介绍

替换 ksh 脚本中路径中的目录名称

Linux基本命令学习

Inteilj IDEA多级目录生成踩坑记