确定Object是否已更改的最佳方法是什么?

时间:2010-02-27 08:50:49

标签: java hashcode savechanges

我在Java Web应用程序(JSF1.2,RichFaces)中创建了一些“保存”bean功能。它使用JAXB将其转换为XML字符串,然后将其存储在数据库中。如果用户将其加载回来,我想通知用户(bean)内容是否已更改并且应该再次保存。

我的想法是使用“hashCode()覆盖org.apache.commons.lang.builder.HashCodeBuilder函数”,但是我有很多字段和子元素。 有没有其他方法来处理这种功能?

修改

“比较”在另一个视图上完成!

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:5)

您可以向bean添加boolean dirty;标志,在设置器中将其设置为true,并在重新加载和保存后清除它。

答案 1 :(得分:1)

您无法单独依靠hashCode来确定对象是否已更改。也就是说,仅仅因为该对象具有与以前相同的hashCode,并不意味着它没有被更改。

答案 2 :(得分:-1)

您可以使用Java的MD5功能:

MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(myObject);
byte[] hash = digest.digest();