Я новичок в Hibernate и на прошлой неделе прошел учебник Hibernate. У меня есть несколько сомнений в том, как сохранять, обновлять, сохранятьOrUpdate и объединять класс Session. Это:
-
метод сохранения: используется для вставки вновь созданного объекта в хранилище данных. (В основном для этого значения идентификатора будет 0). Подобно тому, как я создаю новый клиент и выполняю операцию сохранения вызова, он будет сохраняться в хранилище данных и генерировать идентификатор.
Это правильно? И если мы вызываем save на уже устойчивом объекте, не уверены, что произойдет?
-
метод обновления: он используется для обновления уже сохраняющегося объекта в хранилище данных (в основном для значения идентификатора будет какое-то ненулевое значение). Как и я загружаю нового клиента и вызываю операцию обновления после обновления некоторого значения поля, он обновит его в хранилище данных.
В соответствии с моим пониманием, это должно сработать с некоторым исключением, поскольку обновление API для отдельного объекта. Это верно? Если да, то что мы должны вызвать для обновления объекта в том же сеансе (я имею в виду, если объект не отсоединен). Еще один момент: что произойдет, если мы будем называть обновление для вновь созданного объекта?
-
метод saveOrUpdate: он будет вызывать любой из вышеперечисленных основанных на проверках несохраненных значений (которые он должен делать на основе идентификатора нуля или ненулевого значения, правильно?), поэтому, если у нас есть постоянный объект клиента, и мы обновляем его фамилию и создаем новую учетную запись, тогда saveOrUpdate позаботится об этом.
Я правильно понял это?
-
Метод слияния: он будет действовать как обновление, но здесь, если постоянный объект с тем же идентификатором уже находится в сеансе, он обновит значения отдельных объектов в постоянном объекте и сохранит его,
Но если в сеансе не существует постоянного экземпляра, он будет загружать постоянный объект из хранилища данных, а затем обновлять значение отдельного объекта в загруженном постоянном объекте и затем обновлять его.
Я также получил это?