Oracle表同义词的java Hibernate架构验证失败
我正在开发一个Java web应用程序,它使用Hibernate(基于注释)将实体持久化到Oracle 11g数据库。DBA为这些表创建了同义词,并要求我使用这些同义词而不是物理表。(例如:表“Foo”具有同义词“S_Foo”)
如果启用了“hibernate.hbm2ddl.auto=validate”,则应用程序在启动时会失败,并出现“Missing Table:S_Foo”。如果我关闭验证,那么应用程序将正常启动并正常工作。我猜Hibernate在验证表是否存在时只检查物理表,而不是同义词
有没有办法启用同义词的Hibernate模式验证?我可以在注释中同时指定物理表和同义词吗?我更喜欢在应用程序启动时进行额外的安全检查,确保表结构正确
# 1 楼答案
我对hibernate不太熟悉,但是你能试试视图而不是同义词吗。如果您只是将这些表用于视图,则其工作原理与同义词相同。如果您希望能够在“表”上执行CRUD,那么您需要构建一组而不是触发器
# 2 楼答案
将
hibernate.hbm2ddl.auto=validate
更改为hibernate.hbm2ddl.auto
value=“”,则不会失败