java - Oracle 表同义词的 Hibernate 模式验证失败

标签 java oracle hibernate validation synonym

<分区>

我正在开发一个 Java Web 应用程序,该应用程序使用 Hibernate(基于注释)将实体持久保存到 Oracle 11g 数据库。 DBA 为表创建了同义词并要求我使用这些同义词而不是物理表。 (例如:表“Foo”有同义词“S_Foo”)

如果我启用了“hibernate.hbm2ddl.auto=validate”,那么应用程序会在启动时失败并显示“Missing Table: S_Foo”。如果我关闭验证,则该应用程序可以正常启动并正常运行。我的猜测是 Hibernate 在验证表是否存在时只检查物理表而不是同义词。

有什么方法可以使用同义词启用 Hibernate 模式验证吗?我可以在注释中同时指定物理表和同义词吗?我更喜欢在应用程序启动时进行额外的安全检查以确保表结构正确。

最佳答案

我不太熟悉 hibernate ,但你能试试 View 而不是同义词吗?如果您只是将这些表用于 View ,它的作用与同义词相同。如果您希望能够在“表”上执行 CRUD,尽管您需要构建一堆 instead-of 触发器。

关于java - Oracle 表同义词的 Hibernate 模式验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3022991/

相关文章:

java - 在*定义之前无法引用字段“错误

java - 无法从 application.yml 加载属性未绑定(bind)

java - Hibernate:evict()一个持久对象,同时存储其更改

java - 如何编写可维护的 Solr 代码?

java - 具有 JTable 多行列的自定义渲染器

sql - ORA-00907: 缺少右括号

oracle - 如何保存我的 Oracle Toad 连接以移动到新 PC?

java - 从 Oracle DB 触发器发出 http 请求时出错 - java.sql.SQLException : ORA-29273: HTTP request failed ORA-12541: TNS:no listener

java - 在 JPA 中插入多行的最有效方法

java - @AttributeOverride 不起作用