Hibernate просто обновите то, что вы действительно хотите
public class Person {
private Integer id;
public String name;
public String address;
public Date date;
// getter's and setter's
}
И вы делаете что-то вроде
Person person = (Person) sessionFactory.openSession().get(Person.class, personId);
person.setName("jean");
Hibernate достаточно умен, чтобы знать, что имя свойства было изменено. Хотя вы можете увидеть свой журнал следующим образом
UPDATE PERSON (NAME, ADDRESS, DATE) VALUES (?, ?, ?);
Поскольку Hibernate кэширует каждый запрос SQL (INSERT, UPDATE, SELECT) для КАЖДОЙ сущности, опять же, он просто обновляет то, что вам действительно нужно.