当前位置: 首页 > 知识库问答 >
问题:

如何防止Hibernate在生成的sql中使用模式

盛琪
2023-03-14

我将hibernate 4.2.12与oracle 11g一起使用,我需要告诉hibernate不要在生成的sql中附加任何模式前缀。因此,我从实体中删除@Entity注释中的任何模式引用。但是,hibernate工具尝试使用SCHEMA.TABLE\u名称验证我的表。为了强制hibernate不使用模式前缀,我在persistence.xml中将属性“hibernate.default_schema”设置为空字符串,并关闭了模式验证。应用程序加载正常,但当我尝试执行任何实体查询时,生成的sql是这样的:“.TABLE\u NAME”!这导致oracle中的表不存在错误。

有人对此有解决方案或想法吗??

共有1个答案

胡安怡
2023-03-14

也许现在回答这个问题已经太迟了,但我希望这可以帮助那些面临同样问题的人,我在postgres 11和hibernate 5中通过在公共模式上设置postgres SEARCH_路径并在hibernate配置中删除hibernate.default_模式选项来管理这个问题。

我认为你可以在甲骨文中使用同义词做类似的事情。

 类似资料:
  • 问题内容: 我有一个现有的代码,其中应用程序根据很多条件生成不同的sql并通过hibernate会话createSQLQuery()执行它们。在这里,这些参数与作为普通字符串替换驻留在java类中的sql字符串相连接。现在的问题是,我需要防止sql注入。因此,为此,我必须使用getNamedQuery()并绑定参数,以便hibernate将处理特殊字符。但是问题在于将字符串sql的字符串移动到xm

  • 问题内容: 我有一个项目(私有,ASP.net网站,使用https保护的密码),其中一项要求是用户能够输入将直接查询数据库的Sql查询。我需要能够允许这些查询,同时防止它们对数据库本身造成损害,以及防止访问或更新它们不应该访问/更新的数据。 我提出了以下实施规则: 使用 仅 具有“选择表/视图”和“更新表”权限的db用户(因此,其他任何命令(例如drop / alter / truncate /

  • 问题内容: 对于像老兄一样工作的安全系统(例如受监视的强制访问控制),我们必须拦截并处理hibernate生成的所有选择语句。我们将用户,时间戳和sql选择存储在数据库中,以使用其他工具进行某些性能分析。这些信息可以确定用户尝试查看的内容。对于选择语句,准备好的属性很有价值。我们需要完整的SQL语句,包括所有参数。 是否有任何侦听器或拦截器可以加入并处理所有这些事情?迄今为止最大的突出问题是语句参

  • 我试图将JSF2.2与bootstrap 3.2.0组件结合起来,但在尝试使用带有动态生成的标签列表的按钮组时遇到了问题。我将问题追溯到ui:repeat标记包含在生成的html中,从而阻止了引导程序的正确css样式。 更新只是为了好奇,按钮被显示为普通按钮(在它们之间有间距),而不是在组按钮全部在一起样式中所希望的。

  • 我是Hibernate新手,所以我对此一无所知。Hibernate会生成SQL查询并在数据库上触发。 我能够从控制台检索查询,但我也希望在触发查询之前对其进行修改。 因此,如果查询为:

  • 问题内容: 我正在使用:Eclipse Java EE IDE Web开发人员版本:靛蓝发行 使用hibernate工具,我是第一次在Eclipse中hibernate,因此我学习了如何配置hibernate并生成带有注释的POJO(我认为它比.xml更好)。 因此,在生成我的POJO和DAO之后,我尝试进行插入,但是对我的实体管理器启动了“空点异常”,这就是hibernate工具生成dao类的方