天天看点

【hibernate框架】一对多(多对一)双向CRUD-Cascade2

现在反向测试group是否能关联user存储。

group.java:

测试代码:

group对象能否将关联的user对象存进去呢?

答案是:不可以,因为group没有设置cascade。

解决办法:添加group的annotation的cascade属性

而且只设置了group到user的导航而没有设置user至group的导航。

方法1:手动的存储u1和u2,再保存g。

方法2:设置相互的关系。

u1.setgroup(g);

u2.setgroup(g);

这样就完成了级联存储。

为什么要这么设?因为必须要怎么设(= _=),因为站在hibernate的角度,它存user的时候,他必须要知道user里面的group属性的id是多少,而现在你存的时候没有设,所以不行。

从多的地方操作容易。

规律:如果你对象与对象之间的关系是双向的,那么在写程序的时候,不用多想,一定要设好双向的关联(本例子里面的u1和u2的导航)就可以。单向的只要设定一边的导航就可以。

另外,双向的必须要设定(mappedby)。

转载请注明出处:http://blog.csdn.net/acmman