Моя проблема довольно проста, но в целом очень важна - я думаю.Я провел исследование в течение нескольких часов, но не нашел ничего полезного.
Введение:
У меня есть сущность с именем Employee, которая является центральным классом моей системы (скажем, ее Управление персоналом).Написав центральное, я имею в виду, что он имеет много связей с другими объектами.В нем есть свойства OneToOne, OneToMany и ManyToOne.Проблема:
В некоторых случаях мне приходится обновлять эту сущность (она также имеет базовые свойства, такие как 'String name;' и т. Д.) - после того, как она была изменена в одном контексте EntityManager (Hibernate Session) и должна быть обновлена в другом,Конечно, я могу использовать для этого:
entityManager.refreash(employee);
, но ... он также будет обновляться как "сто" связанных объектов (упомянуто: 1-1, -1, 1- отношения), потому что эти отношения имеют параметр аннотации Cascade.All или Cascade.REFREASH для них.Что не нужно в этой ситуации - я использую только сущность Employee в этом контексте.А что НЕ ХОТИТЕ, потому что это снизит производительность и даже локально займет около 0,5 с ...
Вопрос:
Есть ли способ обновить сущность, по желанию "отключив" каскады ее свойств.Или, может быть: есть ли способ обновить только определенные свойства сущности с помощью Hibernate / JPA ??
Я действительно не хочу, чтобы эти 20 или более длинные SQL-запросы запускались Hibernate, когда я обновляю свою сущность в этихситуации, но в других ситуациях это требуется.
Другими словами, я бы сказал, что мне нужна опция, например "renceCascadesOnRefresh = true / false ", которую можно установить перед обновлением.
Любые другие идеи?
Любая помощь приветствуется,
Педро