hibernate中的传递关系

时间:2011-05-03 02:00:38

标签: java hibernate

我只是想知道传递关系(我不知道它是否可以被调用)是否可以使用注释在hibernate中持久化。 即,我有3个pojo类,即A,B和C. 我只是将C的实例映射到B和B的实例中。 当我保存A(session.save(A))时,我可以保持B和C持续吗?

例如:

a = new A();

b = new B();

c = new C();

b.setC(c);

a.setB(b)

then,

session.save(a);

如果以上行执行,我只想知道b和c是否会被持久化?

我想你们所有人都明白了我的意思。 否则,我可以更详细地阐述我的问题.. 请帮我.. 提前谢谢。

2 个答案:

答案 0 :(得分:0)

是的,当持久存在时,你可以保持b和c持久化。这完全取决于您的映射,请查看JEE's CascadeTypeHibernate's @Cascade Annotation

答案 1 :(得分:0)

您可以定义要与当前对象一起保存的对象。在你的情况下

对于A 保存A时,请保存B对象。

public class A {
    @ManyToOne(cascade={CascadeType.PERSIST})
    B b;
}

对于B 保存B时,自动保存C对象

public class B {
    @ManyToOne(cascade={CascadeType.PERSIST})
    private C c;
}

对于C (无法随之保存)

public class C {

}