Таблица: 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, чтобы увидеть, какие даты изменились.
Но есть ли способ гибернации или более простой способ сделать это?
Как насчет того, чтобы узнать, изменились ли и dob
, и fname
?
Спасибовы.