Вы можете достичь этого поведения, используя свойство Cascade в OneToOne-Annotation. так с Hibernate Annotations / JPA Annotations вы можете получить что-то вроде:
@Entity
public class AClass{
@Id
@GeneratedValue
private long id;
@OneToOne(cascade={Cascade.ALL, Cascade.DELETE_ORPHANS})
private BClass b_1;
@OneToOne(cascade={Cascade.ALL, Cascade.DELETE_ORPHANS})
private BClass b_2;
}
@Entity
public class BClass{
private String someField;
}
в XML-отображении ассоциация должна выглядеть примерно так:
<hibernate-mapping>
<class name="AClass">
<one-to-one cascade="all,delete-orphans" name="b_1" class="BClass" />
<one-to-one cascade="all,delete-orphans" name="b_2" class="BClass" />
</class>
</hibernate-mapping>
Это должно дать вам требуемое поведение в каскадных операциях сохранения на BClasses и удалить все не связанные объекты BClass из уровня сохранения.
Веселись!
Frank