【问题标题】:JBoss Envers ManyToOne AuditingJBoss Envers 多对一审计
【发布时间】:2011-09-13 13:38:07
【问题描述】:

假设场景:我有两个模型:AuthorBookBook 模型与 Author 具有多对一关系。

假设我只想审核对Book 的更改。我用@Audited 注释类,但收到错误消息,抱怨BookgetAuthor() 属性不能被审计,因为Author 未被审计。

这是为什么?我想审核这本书的作者是否更改,但我不在乎作者昵称是否更改。在我的数据库中有一个author_aud 表是没有意义的,但显然这是不可能的,除非我继续审计Author 模型或者用@Audited(...) 专门注释getAuthor() 属性属性忽略关系。但是,如果我这样做,我将无法再审核图书/作者关系。

【问题讨论】:

    标签: java jboss audit many-to-one


    【解决方案1】:

    将此映射添加到 ManyToOne 关系。

    @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)

    【讨论】:

      【解决方案2】:

      如果作者未经过审核,您可能无法审核图书及其作者关系。 也许你应该改变关系的映射方式:有一本书“拥有”它的作者是很奇怪的:我会做一个从作者到它的书的单向多对一关系。有了这个概念,您就可以在不审核作者的情况下审核书籍。

      【讨论】:

      • 有了你描述的映射,如果我有书籍列表,我可以通过一些“getAuthor”找到作者吗?
      • 如果您有@Romain 建议的单向关系,我认为您将无法获得该书的作者,而不是将其视为“拥有”其作者的书,而是我看到了因为书“有”一位作者。所以如果是这样的话,作者也会被审计:-(
      猜你喜欢
      • 2013-06-28
      • 2013-02-08
      • 2013-08-27
      • 2012-02-24
      • 2023-03-24
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多