私はアプリケーションでHibernate Enversを使用して、監査証跡データを格納しています。すべての監査関連情報が* _AUDテーブルに正しく格納されています。ただし、すべての_AUD表のrev列のデータ型はIntegerデータ型です。整数データ型の最大範囲が2147483647なので、大きなintデータ型が必要です。データ型をbig intに変更する方法はありますか?Hibernate Envers revカラムのデータ型がInteger
1
A
答えて
1
デフォルトでは、Envers実装では、REV
列にInteger
データ型が使用されます。
Long
データ型を利用するには、適切な注釈を含むカスタムリビジョンエンティティを指定する必要があります。以下は、BIGINT
互換REV
カラムを使用している間に、既存のデフォルト実装を置き換える例です。
@Entity
@RevisionEntity
public class CustomRevisionEntity implements Serializable {
@Id
@GeneratedValue
@RevisionNumber
private Long rev;
@RevisionTimestamp
private Long timestamp;
/* provide getter/setters */
}
注:すべての監査テーブルは、データ型のリビジョンのエンティティクラスで使用することをそのREV
列のデータ型が一致するようになります。
代わりInteger
ベースリビジョンのLong
を使用するデフォルトの実装を移行するために、オープンJIRA HHH-6615があります。ただし、アップグレードパスを既存のユーザーを考慮してその問題の実装の詳細として検討する必要があります。
これまでは、カスタムリビジョンエンティティを新しい実装に使用することで回避することができます。
関連する問題
- 1. Hibernate Envers:@CollectionTableフィールドの監査
- 2. Hibernate Envers performance MySQL
- 3. Hibernate Enversでのインテグレーションテスト
- 4. spring-data-envers Hibernate java.lang.NoSuchMethodError:org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator
- 5. Hibernate Envers:ログユーザIPアドレス
- 6. Integerデータ型のXSD空値
- 7. QueryDSLアップデートによるHibernate Envers
- 8. Hibernate Enversを使用している場合、監査直後にrev idを取得する方法
- 9. Hibernateマッピングリスト<Integer>
- 10. テキストボックスでIntegerデータ型のPoCo検証
- 11. Hibernate Enversを使用した監査
- 12. データベースのJavaモニタの変更 - Hibernateとenvers
- 13. 春データEnversのカスタムメタデータ
- 14. Liquibaseカラムのデータ型が混乱する
- 15. EnversとHibernate Spatialで監査4
- 16. Hibernate Enversでリビジョンを破棄する
- 17. MySQL監査テーブル:hibernate-enversとトリガー
- 18. Hibernate JPA + Sybaseイメージ・データ型
- 19. カラムのデータ型をチェックし、Spark SQLのIntegerとDecimalでのみsqlを実行してください
- 20. Hibernate Enversの間にnullpointerexceptionが見つかりました
- 21. Hibernate Envers:リビジョンのクエリで問題が発生しました
- 22. longtextデータ型のカラムのデータが長すぎます - MySqlException
- 23. 休止Envers:サブクラス
- 24. Hibernate invalid tableカラム
- 25. Hibernateカラム名パラメータバインディング
- 26. Hibernate Tools - "version"カラム
- 27. IntegerフィールドでのHibernateの検証
- 28. Hibernateのカラム定義
- 29. YAMLジャクソン - NullPointerExceptionがInteger型のプロパティ
- 30. Hibernate EnversとのManyToOne関係のロード - Eager/Lazy?
この列はリビジョンに1つのタプルを使用していませんか?つまり、タプルは2147483647のリビジョンを持つことができます。これは十分である必要があります... – Ben
番号1のシーケンス番号からすべてのAUDテーブルのリビジョン番号を取得します – kenn3th