Много-к-одному в спящем каскаде = "нет" - PullRequest
0 голосов
/ 12 марта 2020

Если у меня есть объект, который является частью отношения «многие-к-одному» с другими объектами, и для параметра CASCADE задано значение НЕТ, ДОЛЖЕН ЛИ Я СОХРАНИТЬ ИНДИВИДУАЛЬНО СОХРАНИТЬ объекты?

Например

Внутри HeroObject есть SkillObject, внутри SkillObject есть CooldownObject. Если я хочу сохранить HeroObject в базе данных, нужно ли отдельно сохранять SkillObject и CooldownObject.

HeroObject имеет свой собственный heroDao.saveMethod (), так же как и SkillObject - sillDao.saveMethod () и coolDownObject с cooldownDao.saveMethod ().

Так что, если для CASCADE задано значение «НЕТ», я должен выполнить 3 сохранения () в этом примере. Имею ли я здесь смысл?

Ответы [ 2 ]

1 голос
/ 12 марта 2020

если вы установили каскад на none, то вам придется сохранять объект индивидуально. это утомительная работа лучше использовать каскад при использовании картографирования. Если вы сохраните объект HeroObject, то все объекты также будут сохранены в базе данных. Если вы удалите HeroObject, то все учетные записи, связанные с этим HeroObject, также будут удалены. Но что, если мы хотим каскадировать только операции сохранения, а не операции удаления. Затем мы должны четко указать Hibernate Cascade Types .. вы можете перейти по этой ссылке для получения дополнительной информации. [https://howtodoinjava.com/hibernate/hibernate-jpa-cascade-types/] [1]

0 голосов
/ 19 апреля 2020

@ Нет gui Да, вам придется выполнять операции вручную, у вас есть сопоставление OneToMany между этими объектами, у Героя может быть много навыков, а у навыка может быть много типов настроек охлаждения (согласно моему пониманию). теперь, если hibernate должен отобразить их в таблицах соединения, их нужно сначала сохранить. Но почему вы делаете это таким образом, если только в исключительных случаях вы не извлечете выгоду из операции Cascade.

...