2017-02-23 95 views
0

我的項目是從Grails的爲Java,所以我已經通過審覈的Grails插件推一個表exisiting審計數據,我現在使用Java envers在Java審計遷移。我有以下疑惑:生成手動休眠Envers主鍵和JPA以及

- >如果我想手動將數據從單個表單推送到不同的審計表(以Java),我如何手動生成歷史數據修訂表的主鍵,這將不會與主鍵相沖突從Java註釋生成? 至於新條目我生成主鍵象下面這樣:

@Id 
    @GeneratedValue 
    @RevisionNumber 
    @Column(name = "ID") @NotNull 
    private Long revisionId; 

- >任何其他方式來推動從單個審計表數據,以隔離審計表格(在Java中),而不是手動操作的方式呢?

請讓我知道這件事。

謝謝。

+0

你用什麼方言? – Naros

+0

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect – Khushi

回答

0

Envers應該在Oracle上創建名爲REVISION_LISTENER的序列。

因此,您應該能夠使用Oracle的語法SELECT REVISION_LISTENER.NEXTVAL以獲取下一個序列值,並在審計表和修訂實體信息表中使用REV字段。

這僅適用於DefaultAuditStrategy

如果您打算使用ValidityAuditStrategy,還有其他字段,您必須瞭解Envers的內部以便能夠填充相關字段。如果你正在使用這種策略,請告訴我,我將添加更多的特定細節,但它非常複雜且非常繁瑣。

+0

非常感謝Naros..I沒有定義任何的審計策略,這樣意味着我可以用你的解決方案,我會檢查,並讓你知道結果.. – Khushi