Как создать базу данных в cpanel, используя codignter, используя миграции

У вас есть все в порядке, но обновление работает немного иначе, чем вы его описывали. Если объект находится в сеансе (т. Е. Постоянный), обновление совершенно не нужно. Hibernate обрабатывает любые изменения объектов в сеансе при очистке сеанса.

Обновление предназначено для вызова на отдельные объекты, то есть те, которые находятся за пределами сеанса, который они загружали in. @hvgotcodes кажется неправильным, потому что обновление следует вызывать, только если объект не в сеансе. обновление может завершиться неудачно, если экземпляр объекта уже находится в сеансе. В этом случае следует использовать слияние. Он объединяет изменения отдельного объекта с объектом в сеансе, если он существует. Если в сеансе нет объекта, он создаст новый.

. Часто вы можете вообще не вызывать обновление / слияние, но если вам в итоге нужно позвонить, слияние обрабатывает более широкий диапазон ситуации. Мое понимание - единственная причина использования обновления для лучшей производительности, если вы знаете, что это не будет ошибкой.

В этой теме есть довольно хорошее резюме некоторых других методов спящего режима,

Редактирование: я просто подумал, что должен сказать, что между слиянием и обновлением больше различий, чем я изначально сказал. Обновление изменяет данный объект на постоянный, тогда как merge возвращает новый постоянный объект. Для слияния вы должны выбросить старый объект. Другое отличие заключается в том, что слияние выполняет грязную проверку, выбирая из БД, прежде чем принимать решение о том, следует ли записывать свои данные, тогда как обновление всегда сохраняет свои данные в БД независимо от того, грязно это или нет.

Есть, вероятно, другие небольшие отличия. Всегда полезно проверять поведение Hibernate, регистрируя сгенерированный SQL, потому что поведение не всегда соответствует документам, по крайней мере, по моему опыту.

0
задан DaveyDaveDave 5 March 2019 в 07:37
поделиться