表:Profile
pk fk fname lname dob ssn createDate ModifyDate
1 22 bob smith 01/02/1978 123456789 01/27/2012 null
2 22 bob smith 01/02/1978 987654321 01/27/2012 01/28/2012
3 22 bob smith 04/02/1944 123456789 01/27/2012 01/29/2012
4 22 bob dole 04/02/1944 123456789 01/27/2012 01/30/2012
5 22 bob dole 02/12/1913 123456789 01/27/2012 01/31/2012
6 22 john dole 02/12/1913 123456789 01/27/2012 02/02/2012
7 22 bob dole 11/22/1994 123456789 01/27/2012 02/03/2012
我想返回最后三次dob已更改为fk = 22
。
这将返回记录7,6,4。
所以我可以这样做:
Integer foreignKey = new Integer(22);
Criteria criteria = session.createCriteria(Profile.class);
List results = criteria.add(Restrictions.eq("fk",foreignKey))
.addOrder( Order.desc("ModifyDate") ).list();
现在我知道我可以编写一个for循环并比较dob以查看哪些日期已更改。
但是有没有hibernate方法或更简单的方法来做到这一点?
如果我想查看dob
和fname
是否会发生变化,那该怎么办?
谢谢。
答案 0 :(得分:0)
您可能需要查看Hibernate Envers,但我认为您不能使用它自动执行此类查询。 Afaik你只有两种可能性来实现这个目标: