Oracle表同义词上的Hibernate架构验证失败

时间:2010-06-11 13:13:12

标签: java oracle hibernate validation synonym

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

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

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

2 个答案:

答案 0 :(得分:0)

我不熟悉hibernate,但你可以尝试视图而不是同义词。如果您只是将这些表用于视图,它将与同义词一样工作。如果你想在“桌子”上做CRUD,虽然你需要构建一堆反而触发器。

答案 1 :(得分:0)

hibernate.hbm2ddl.auto=validate更改为hibernate.hbm2ddl.auto value =“”然后它不会失败。