В чем разница между HibernateSession методами saveOrUpdate(Object) и merge(Object)? Кажется, что оба метода генерируют оператор SQLINSERT, когда данный объект не существует в соответствующей таблице, и UPDATE, когда он существует.Каковы различия между методами сеанса Hibernate saveOrUpdate() и merge()?
ответ
Несмотря на то, что это для NHibernate, это также относится к Hibernate:
NHibernate - Difference between session.Merge and session.SaveOrUpdate?
Согласно третий комментарий, NHibernate 'Merge()' и 'SaveOrUpdate()' производит точно такой же результат. (Комментатор заявляет, что 'SaveOrUpdate()' просто делегирует 'Merge()'.) –
Хорошо, если это правда, это не то же самое для Hibernate :-) Оба вызова * могут * давать одинаковый результат, но зависит на состояние объекта. Вместо репликации документации я предоставил только обновленную ссылку :-) http://docs.jboss.org/hibernate/core/3.5/reference/en/html/objectstate.html#objectstate-saveorupdate – jpkrohling
Если я правильно помню, слияние для ип-ассоциированных случаев, которые в настоящее время не удалось. Он будет выполнять поиск на основе id и объединить два.
Что это такое означает «объединить два объекта»? Как он знает, какие поля объединяются? Объединяет ли он только те, которые не отличаются друг от друга, и те, которые отличаются и не равны нулю? Первый случай ничем не отличается от обновления, а второй отличается от сохранения и обновления. –
Посмотрите на второй ответ на связанный вопрос, который цитирует спецификацию. 3.2.4.1 - http://stackoverflow.com/questions/3870844/best-approach-for-updation-using-jpa Похоже, что отсоединенный экземпляр перезапишет большую часть данных, если только поле не помечено как lazy или класс поддерживает версии. – Scott
SaveOrUpdate versus Merge in Hibernate объясняет различия между saveOrUpdate()
и merge()
.
- 1. Каковы различия между методами nibNameOrNil и ViewDidLoad?
- 2. Каковы различия между методами CodenameOne getCurrentLocation?
- 3. Каковы различия между методами делегированных ориентации интерфейса
- 4. Каковы различия между XSLT и методами генерации кода T4?
- 5. Каковы различия между WinExec и ShellExecute?
- 6. Hibernate Inheritance Save: saveOrUpdate и Merge генерируют крайнее число SELECT
- 7. Каковы различия между различными методами WhenAny в Reactive UI
- 8. Каковы различия между этими двумя методами использования команды put?
- 9. Каковы различия между тремя методами анализа покрытия кода?
- 10. Каковы различия между этими двумя методами, как получить Locale объект
- 11. JQuery Различия между методами на
- 12. Различия между методами перегрузки страниц
- 13. авто и различия между перегруженными методами
- 14. ThreadPoolExecutor - различия между методами submit и execute?
- 15. различия между определяющими функциями/методами в JS?
- 16. Разница между событиями и методами
- 17. Hibernate merge() с версией
- 18. nHibernate saveorupdate/merge отдельный объект
- 19. Каковы различия между этими вставками?
- 20. Каковы различия между типами запросов?
- 21. Каковы различия между следующими кодами
- 22. Hibernate saveOrUpdate против обновления против сохранения/упорствовать
- 23. Каковы различия между OLEDB и ODBC?
- 24. Каковы различия между управляемыми и неуправляемыми библиотеками?
- 25. Каковы различия между MSBuild и TFSBuild
- 26. Каковы различия между MySQL = и <>
- 27. Каковы основные различия между ASP.net и PHP?
- 28. Каковы различия между php5 и php5-Dev
- 29. Каковы различия между слоями и расширяемыми эффектами?
- 30. Каковы различия между запросами linq и linqToSql?
Вы действительно прочитали документы java, с которыми вы связались? :) – willcodejavaforfood
Да, я сделал. Основное отличие, которое я вижу в том, что 'merge()' загружает объект, который не находится в сеансе, в то время как 'saveOrUpdate()' does not. Означает ли это, что 'saveOrUpdate()' частичного объекта перезаписывает все поля, а 'merge()' перезаписывает только те поля, которые были установлены для ненулевых значений? Или оба дают одинаковый результат? –
Возможный дубликат [NHibernate - Разница между сеансом.Merge и session.SaveOrUpdate?] (Http://stackoverflow.com/questions/170962/nhibernate-difference-between-session-merge-and-session-saveorupdate) –