7.3.3 一点变化

    备份之前记录的状态需要重新从数据库加载,性能会受到一定影响。为使其达到同样的效果,我们在每次做创建和更新记录操作时,把这条内存中的记录同时持久化到user表和user_log表里,虽然日志表里的那条最新的记录永远是多余的,占用了存储空间,但是能保证日志表里跟踪了记录的所有变化,提高了性能(以空间换性能)。

    按照这个想法,我们实际没有按照上述给出的代码编写,而是撰写了如下代码。

    figure_0121_0115

    figure_0122_0116

    这样,既扩展了GenericRepositoryHibernate和GenericRepositoryJpa对象的行为,又没有对它们的类进行任何修改,这就不会影响既有的健壮代码,符合OCP原则。