Как сделать каскадное сохранение в спящем режиме - PullRequest
5 голосов
/ 20 июля 2011

У меня есть объекты A и B.

Объект А похож на

class A{
 Set<B>
}

Теперь, когда я сохраняю A, я хочу, чтобы все объекты в Set<B> из A автоматически сохранялись в БД. Как я могу это сделать?

Ответы [ 2 ]

16 голосов
/ 20 июля 2011
// Use the cascade option in your annotation
@OneToMany(cascade = {CascadeType.ALL}, orphanRemoval = true)
public List<FieldEntity> getB() {
    return fields;
}
1 голос
/ 27 августа 2012

Вопрос от Ransom будет работать, если вы работаете через EntityManager и используете только аннотации JPA.Но если вы используете Hibernate напрямую, вам нужно использовать собственную аннотацию для каскадирования.

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

...

@OneToMany
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
public List<FieldEntity> getB() {
    return fields;
}
...