1
我在我的應用程序中使用Hibernate Envers來存儲審計跟蹤數據,所有審計相關信息都正確存儲在* _AUD表中。但是,所有_AUD表中rev列的數據類型都是Integer數據類型。我期待一個大的int數據類型,因爲整數數據類型的最大範圍是2147483647.有沒有辦法將數據類型更改爲大的int?Hibernate Envers rev列數據類型爲Integer
我在我的應用程序中使用Hibernate Envers來存儲審計跟蹤數據,所有審計相關信息都正確存儲在* _AUD表中。但是,所有_AUD表中rev列的數據類型都是Integer數據類型。我期待一個大的int數據類型,因爲整數數據類型的最大範圍是2147483647.有沒有辦法將數據類型更改爲大的int?Hibernate Envers rev列數據類型爲Integer
默認情況下,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
列的數據類型匹配的數據類型的您在修訂實體類使用。
有一個開放JIRA HHH-6615遷移默認的實現使用Long
代替Integer
基於修改;然而,它確實要求我們將升級路徑視爲該問題的實現細節以說明現有用戶。
在此之前,爲新實現使用自定義修訂實體是一種解決方法。
這個列不是用來修改單個元組嗎?意味着:一個元組可以有2147483647版本,這應該足夠了... – Ben
編號Envers從1個序號獲取所有AUD表的版本號 – kenn3th