позволяет, что у меня есть:Hibernate: лучший способ обновить объект
// all objects have valid mapping to database
public class A {
private int id;
private String name;
private List<B> chidlren1;
private List<C> children2;
}
в методе обновления моего контроллера я должен обновить конкретный объект, но новые значения для этого я хранить в переменной сеанса, как другой A объект.
Итак, вопрос в том, какой правильный способ обновить этот конкретный объект от другого объекта? Правильный ли следующий код?
A old = dao.get(id);
A temp = getFromSession();
old.Name = temp.Name;
old.Children1 = temp.Children1;
old.Children2 = temp.Children2;
dao.update(old);
И еще один вопрос - если previoud метод является правильным, будет зимовать сначала удалить все записи из таблиц и акций, и игровых добавить новые или он может автоматически обновлять/добавлять новые записи и удалить удаленные из них?
Спасибо
UPD # 1: Допустим, сборники акций, и температуры отличаются от детских коллекций старого?
'dao.update (old)' фактически обновит текущую запись, если она существует. Новая запись не вставлена. – Rakesh
Я говорил о сборниках сыщиков и рядах рядовых детей. См. UPD # 1 – nKognito
Он не удаляет ** все ** записи из дочерней таблицы. Потому что у него будут записи для нескольких экземпляров 'A'. Но он изменит таблицу, чтобы отразить изменения, внесенные в текущий экземпляр 'A'. Для этого, если записи не находятся в новой коллекции, они удалят их. –