В одном приложении, над которым я работаю, я обнаружил, что объекты JPA, которые были изменены, не были ранее загружены, я имею в виду;Правильный способ сохранения существующей сущности JPA в базе данных
Вместо того, чтобы делать так: (! И работ)
getEntityManager().find(Enterprise.class, idEnterprise);
//Some modifying operations
Они делают так:
Enterprise obj = new Enterprise (IdEnterprise);
//Some modifying operations
getEntityManager().persist(obj);
Это последнее решение оленья кожа нагрузки из базы данных объекта и изменяет объект правильно.
- Как это возможно?
- Хорошая практика? По крайней мере, вы избегаете запроса, который загружается из базы данных, не так ли?
Благодаря
- Почему второй подход плох и избыточен? - Второй способ избежать одного запроса, не так ли? Фактически, согласно этой теме (http://stackoverflow.com/questions/12828919/how-do-i-save-anity-with-foreign-key-without-loading-the-related-entity-in- j), когда вы хотите сохранить объект и у него есть другие объекты (внешние ключи), нет необходимости загружать их из базы данных, если вы не хотите их изменять, тогда вы можете использовать «em.getReference (Account.class, accountId) « – user3254515
Как я уже сказал, это плохая практика (потому что вы смешиваете разные проблемы в одном и том же методе), но вы можете это сделать, если вам нужно оптимизировать установленное приложение, и вы ограничиваете его логикой базы данных. – gurghet