В спящем режиме session.save() должен сохранять записи. Он генерирует «вставить» запросы. Тем не менее, я написал ниже простую программу, чтобы проверить это. Я наблюдаю, что save() также может использоваться для обновления записей. Он генерирует запрос «update». Не сохраняет() выполнение той же работы, что и saveorupdate() в нижеприведенной программе?Почему Hibernate Save обновляет записи?
SessionFactory sf = conf.buildSessionFactory();
Session session = sf.openSession();
Transaction trans = session.beginTransaction();
Vehicle veh = new Vehicle();
veh.setId(1);
veh.setModel("Veh_mod");
veh.setName("Veh_Name");
Serializable obj = session.save(veh);
veh.setModel("Veh_mod_change");
obj = session.save(veh);
session.flush();
trans.commit();
session.close();
------------------------- в консоли --------------- -----------------
гибернации: /* вставить com.anvesh.test.Vehicle */вставки в АВТОМОБИЛЯ (ИМЯ, МОДЕЛЬ, ИД) значения
Hibernate (,??): /* обновление com.anvesh.test.Vehicle */обновление ТРАНСПОРТНЫЕ СРЕДСТВА комплект ИМЯ = ?, МОДЕЛЬ =? где ID =?
@ gmarintes..Спасибо за ваш ответ. Когда я попробовал вышеуказанный фрагмент кода, у меня есть org.hibernate.NonUniqueObjectException. Затем я заменил save() с saveOrUpdate() в последних двух операторах. даже тогда я получил org.hibernate.NonUniqueObjectException. Так что любезно дайте мне знать, какую разницу мы можем вывести/разглядеть между save и saveOrUpdate() в предыдущем фрагменте кода. – Anveshan
Я забыл, что вам нужно попробовать его на двух разных сеансах. Я редактировал код выше. – gmarintes