如何防止hibernate在生成的sql中使用schema

时间:2014-05-03 02:44:23

标签: hibernate jpa oracle11g

我正在使用带有oracle 11g的hibernate 4.2.12,我需要告诉hibernate不要在生成的sql中附加任何模式前缀。所以我从我的实体中删除@Entity注释中的任何模式引用。但是,hibernate工具尝试使用SCHEMA.TABLE_NAME验证我的表。在试图强制休眠不使用模式前缀我设置属性" hibernate.default_schema"到我的persistence.xml中的空字符串,我关闭了架构验证。应用程序加载正常,但是当我尝试执行任何实体查询时,生成的sql以这种方式出现:" .TABLE_NAME"!这导致oracle中的表不存在错误。

让任何人有解决方案或想法吗?

1 个答案:

答案 0 :(得分:0)

也许回答这个问题为时已晚,但是希望可以帮助遇到相同问题的人,我在postgres 11和hibernate 5中通过在公共模式上设置postgres SEARCH_PATH并在休眠配置中删除了hibernate.default_schema选项来解决了这一问题。

我认为您可以在ORACLE中使用同义词进行类似的操作。