使 J2EE 应用程序避免更新数据库

Make a J2EE application avoid updating the DB

我有一个 JBoss 6 应用程序 运行 EJB 和 Spring 代码(此决定涉及一些遗留问题)。它应该按需与 Oracle 和 PostgreSQL 数据库通信。 JPA 是完成数据库操作的方式,不涉及直接 JDBC。

我想做以下事情:在不改变业务逻辑的情况下,能够从我的应用程序 "silence" 数据库 updates/deletes 中,而不中断任何异常的流程。

我目前的想法是:

还有其他简洁的方法吗?

如果要确保应用程序在生产环境中正常工作,请处理数据库的副本。每晚使用覆盖副本数据库的调度程序。

我的请求还包括需要在运行时激活或停用此行为。

我找到的解决方案(目前用于概念验证)是:

  • 创建一个新用户,授予他对默认架构表的权限;
  • 与此用户一起为每个表创建视图,名称相同(没有模式前缀);
  • 使用 INSTEAD OF;
  • 为每个不执行插入、更新或删除操作的视图创建触发器
  • 为此用户创建数据源和持久性单元;
  • 在运行时注入两个实体管理器,使用需要的那个;

感谢您的帮助!