对于Hibernate的双向关联和单向关联,我一直都搞不懂,究竟什么时候用双向关联、什么时候用单向关联呢?以前写过一个Hibernate的项目,那时什么都不管,都是直接双向关联,暑假找个项目来练练,突然发现我居然连这个都不清楚,于是便上网去查一查,总结了单向和双向关联的区别就在于,两个类是否需要互相知道,如果类A需要知道类B,而类B也需要知道类A,那么这两个类就应该是双向关联的,而如果只需要类A知道类B,而不需要类B知道类A,那么就是单向关联。
当然,实际上我们一般都是设置的双向关联(用单向的比较少)
还有一个关于关联时的集联(cascade)参数设置:
-
CascadeType.PERSIST
:如果一个实体是受管状态, 或者当persist()函数被调用时, 触发级联创建(create)操作 -
CascadeType.MERGE
:如果一个实体是受管状态, 或者当merge()函数被调用时, 触发级联合并(merge)操作 -
CascadeType.REMOVE
:当delete()函数被调用时, 触发级联删除(remove)操作 -
CascadeType.REFRESH:
当refresh()函数被调用时, 触发级联更新(refresh)操作 -
CascadeType.ALL
:以上全部借助文章:
http://loomz.blog.163.com/blog/static/52111559200792491826947/