Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > обновление в Hibernate


Автор: fath_fast 6.7.2008, 00:45
Есть определённый класс отражающий сущность таблицы.... 
При добавлении поля в таблицу, я создаю новый объект этого класса и в транзакции сохраняю объект в базе...
При обновлении одного объекта вызывается saveOrUpdate... 
Но что делать, если в наличии имеем  ListArray таких объектов, и некоторые из этого множества просто надо в базе обновить, а другие добавить?
Как Hibernate определяет что подлежит обновлению, а что добавлению?

Насколько я понимаю, вся соль заключена в уникальном идентификаторе объекта, и если я создам новый объект класса, и присвою ему существующий уже индетификатор в таблице... то при вызове метода saveOrUpdate обновится, то поле, которое имеет этот индентификатор... я прав?

Что-то я запутался.... smile 

Автор: v2v 6.7.2008, 00:59
да.
Цитата

 saveOrUpdate() does the following:
      if the object is already persistent in this session, do nothing
      if another object associated with the session has the same identifier, throw an exception
      if the object has no identifier property, save() it
      if the object's identifier has the value assigned to a newly instantiated object, save() it
      if the object is versioned (by a <version> or <timestamp>), and the version property value is the same value assigned to a newly instantiated object, save() it
      otherwise update() the object 


Добавлено через 32 секунды
3,4 if

Автор: fath_fast 7.7.2008, 14:15
v2v, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)