浏览 1968 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-07-21
one-to-many的话,最好设置inverse="true" many-to-many的话,把其中一端设置为inverse="true" 两个类custom和orders,其中custom是one方的,orders是many方的.inverse是one-to-many方set的一个属性.如果inverse为false,当many-to-one方有变动则,one-to-many方也会相应的进行一次变动;若为true,那many-to-one方有变化时,one-to-many方不变. 当inverse为false时,如果orders被更新了,那连动的custom方也会对其关联的orders进行变动,相当于对同一个或一组orders表进行两次操作(效果是相同的),如果为true,那orders有变动,则custome不会对其关联的orders进行连动操作。这样同样效果的数据库操作就只做一次,提高了数据库使用效率。 在hbm影射文件中set中inverse是设置控制方,false是控制方,true反之;一般在一对多的情况下我们会使用双向一对多,就是由多的一方控制,就是楼上说的:one-to-many的话,最好设置inverse="true",双向一对多的好处就是在hibernate只用执行一个sql... cascade是设置级联方式的,有4个选项none/all/save-update/delete, none:是没有级联;all:是所有的操作都级联;save-update:是在进行save和update的时候级联,delete:就是在delete的时候级联, inverse和cascade是两个概念,不能同日而语!。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-23
可以
这个我也知道 今天我又复习了一遍 |
|
返回顶楼 | |
发表时间:2009-04-02
说的蛮清楚的
|
|
返回顶楼 | |