2011-06-12 89 views
1

假设情况:我有两个模型:AuthorBookBook模型与Author有多对一的关系。JBoss Envers ManyToOne审计

假设我只想审核对Book的更改。我使用@Audited注解了类,但是由于Author没有经过审计,因此无法审计BookgetAuthor()属性,但发现错误。

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

回答

0

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

+0

随着你的描述,如果我有一个书单,我将能够通过一些“getAuthor”找到笔者映射? – 2011-12-04 05:08:38

+2

如果你有@Romain建议的单向关系,我不认为你能够得到本书的作者而不是把它看作是书“拥有”它的作者,我把它看作书“有”作者。所以如果是这样的话,作者也会被审计:-( – tintin 2012-01-02 10:08:29

1

将此映射添加到ManyToOne关系。

@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)

相关问题