2013-04-04 90 views
1

問題是提供加密某些實體屬性的能力。HIbernate加密和解密在Getters/Setters中?

由於實體是groovy類,並在運行時生成,我已將 加密邏輯併入getter中的setter和解密邏輯。但看起來hibernate希望Getter/Setter是對稱的。 session.save()調用getter來在內部設置值,因此它總是將解密後的版本保存到數據庫中。

這是Hibernate的默認行爲?有什麼方法可以規避這個問題嗎?

+0

您使用的註解?如果是的話,你在哪裏放置你的註釋?在GETTERs/SETTER或屬性上? – Rafa 2013-04-04 18:07:45

回答

0

無論何時您想在數據庫中的內容與持久性實體中的內容之間進行一些調整,執行此操作的方法是使用custom user type。我已經用它來確保保存的字符串被填充空格。這比向getter和setter添加代碼要少得多,並且避免了由於Hibernate認爲您已經做出更改而導致的意外傳輸保存問題。