【发布时间】:2018-05-09 09:13:03
【问题描述】:
我们目前仍在使用 Hibernate 4 和 Hibernate Envers。我们的应用程序使用两个不同的数据库模式,共享相同的域对象。其中一种模式 (schema1) 正在使用 envers 表 (_aud 和 revinfo),其他模式 (schema2) 不是。在一些业务案例中,值将从schema1 复制到schema2 中的相同表中
这意味着 envers 表 revinfo 存在于 schema1 中,但不存在于 schema2 中。不知何故,Hibernate 4 可以正常工作这么长时间。我们目前正在将我们的应用程序升级到更新的依赖项,作为第一步,我从4.3.11.Final 升级到5.0.12.Final 并面临这个问题,即schema2 上缺少休眠抱怨表revinfo
Caused by: org.postgresql.util.PSQLException: ERROR: relation "schema2.revinfo" does not exist
Position: 13
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:173)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:622)
at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:472)
at org.postgresql.jdbc.PgStatement.executeUpdate(PgStatement.java:429)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:384)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204)
【问题讨论】:
-
您是指定
org.hibernate.envers.default_schema还是org.hibernate.envers.default_catalog? -
嗨,Brian,没有定义
default_schema或defaut_catalog。为了更清楚,schema1应该使用 envers,schema2不是。我现在尝试用default_schema定义schema1,但随后它抱怨revinfo_pkey中的唯一约束。我假设现在两个模式不使用schema1进行 envers 条目。schema2的实体管理器已经配置了hibernate.listeners.envers.autoRegister=false,目前我也在玩hibernate.integration.envers.enabled
标签: hibernate schema hibernate-envers