有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

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


共 (2) 个答案

  1. # 1 楼答案

    我对hibernate不太熟悉,但是你能试试视图而不是同义词吗。如果您只是将这些表用于视图,则其工作原理与同义词相同。如果您希望能够在“表”上执行CRUD,那么您需要构建一组而不是触发器

  2. # 2 楼答案

    hibernate.hbm2ddl.auto=validate更改为hibernate.hbm2ddl.autovalue=“”,则不会失败