休眠 Envers 在具有和不具有 envers 的不同架构上共享域对象



我们目前仍在使用Hibernate 4和Hibernate Envers。我们的应用程序使用两个不同的数据库模式,共享相同的域对象。其中一个模式(schema1(使用envers表(_audrevinfo(,其他模式(schema2(则不然。在一些业务案例中,值将从schema1复制到相同的表中schema2

这意味着 envers 表revinfo存在于schema1中,但不存在于schema2中。不知何故,Hibernate 4 可以正常工作这么长时间。我们目前正在将我们的应用程序升级到较新的依赖项,作为第一步,我正在从4.3.11.Final升级到5.0.12.Final并面临问题,休眠抱怨表revinfo丢失schema2

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)

我现在做了什么,它似乎有效。schema2已配置

<prop key="hibernate.listeners.envers.autoRegister">false</prop>

我在那里添加

<prop key="hibernate.integration.envers.enabled">false</prop>

不是必需的,但为了确保我也在实体管理器中添加了schema1

<prop key="org.hibernate.envers.default_schema">managed_configuration</prop>

我还不能100%确定副作用。我会回来的。

相关内容

  • 没有找到相关文章

最新更新