2011-06-12 256 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)

相關問題