我正在开发一个 Java Web 应用程序,它使用 Hibernate(基于注释)将实体持久保存到 Oracle 11g 数据库。DBA 为表创建了同义词,并要求我使用这些同义词而不是物理表。(例如:表“Foo”有同义词“S_Foo”)
如果我启用了“hibernate.hbm2ddl.auto=validate”,则应用程序在启动时会失败,并显示“Missing Table: S_Foo”。如果我关闭验证,则应用程序可以正常启动并正常运行。我的猜测是 Hibernate 在验证表是否存在时只检查物理表而不是同义词。
有什么方法可以使用同义词启用 Hibernate 模式验证?我可以在注释中同时指定物理表和同义词吗?我更喜欢在应用程序启动时进行额外的安全检查以确保表结构正确。