Hibernate Envers 遇到级联操作时

上一篇文章中介绍了Hibernate Envers,并且通过最后的数据图片,我们可以很清晰的了解Hibernate Envers。

当执行新增、修改、删除操作时,审计表中都会增加相应的记录,并且能够标识出执行的具体操作。

下面,更深一步了解在使用中的具体问题:

当遇到Hibernate级联操作时,如果true配置为true的话,则会在第一次执行级联操作时,新建一张新的审计表,如果设置为false,也不会影响审计表中主表、子表的数据记录。

但是,实际情况总是复杂的,问题也就出来了:经测试,生成的这张记录关联操作的审计表,表名是以实体类命名的,审计表的前缀、后缀再加上两个实体类的类名,那么,这张表名已经变得非常长了,而oracle中表名规定30个字符以内,因此,产生错误。

解决方案1:将revision_on_collection_change设置为false。

解决方案2:保证类名长度,保证最后生成的表名长度。


你可能感兴趣的:(Web开发)