2017-08-19 26 views
1

在我們的數據庫表中,我們記錄了一個大字符串及其對應的md5值。在MYSQL5,我們將此類紀錄在休眠狀態下注釋派生數據庫clolumns

insert (md5,content) values (md5(content), hex(content)); 

移動冬眠,我已經詮釋了實體

@Column(name = "content", columnDefinition = "MEDIUMTEXT") 
@ColumnTransformer(read = "unhex(content)", write="hex(?)") 
private String content; 

偉大的工程。但我不明白如何註釋md5列,以便它可以在插入時自動生成。特別是,一個columntransformer不會工作,因爲?在註釋中是指md5字段,而不是內容字段。

任何意見,或幫助讚賞。

回答

0

您可以使用hibernate攔截器,並準確地預先保存(在本例中)事件進行加密。 閱讀關於冬眠攔截器在這裏Hibernate Interceptors

+0

我很感謝這個答案。我學到了一些我不知道的東西。但是,我不認爲這種方法可以解決我的問題。我可以攔截onSave,並從我的查詢中查找狀態(值)和屬性名稱,但對於我如何設置該值並不明顯。如果我將md5字​​段的值設置爲「md5(content)」,則插入該字符串,顯然,我想要計算md5。 – dbp