2017-02-23 6 views
0

私のプロジェクトはGrailsからJavaに移行していますので、Grails Auditプラグインによってプッシュされた単一のテーブルに監査データがあります。Hibernateを手動で生成し、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

エンベロープは、REVISION_LISTENERという名前のシーケンスをOracle上に作成する必要があります。

したがって、次のシーケンス値を取得し、監査テーブルとリビジョンエンティティ情報テーブルの両方のREVフィールドに使用するには、Oracleの構文SELECT REVISION_LISTENER.NEXTVALを使用することができます。

これはDefaultAuditStrategyにのみ適用されます。

ValidityAuditStrategyを使用する予定の場合は、Enversの内部を理解して関連フィールドに入力するためのフィールドがあります。この戦略を使用している場合は、私に知らせてください。具体的な詳細を追加しますが、非常に複雑で非常に面倒です。

+0

ありがとうNaros ..監査戦略を定義していないので、私はあなたのソリューションを使うことができます。私はチェックして結果を知らせます.. – Khushi

関連する問題