gdufo

 

hibernate annotation关联关系问题解决

转:
http://www.blogjava.net/wuxj888java/archive/2008/01/03/172504.html

最近使用annotation做hibernate映射,有两张表人员(Person)表 和医院(Hospital)表,人员表和医院表是ManyToOne,业务只需要从人员表出发设置不同医院,所以是单向的ManyToOne

在Person表关系定义如下:
@ManyToOne(cascade = { CascadeType.PERSIST,CascadeType.MERGE})
@JoinColumn(name = "HOSPITAL_ID")

但我在后台方法测试时,如果医院信息修改或新建,保存到人员表中,医院信息不会级联更新或新增,级联关系不起作用


我又用hbm.xml方式实验了一下,在Person端加上cascade="save-update",如果医院信息修改或新增,保存人员信息会级联更新或新增到医院表,方式如下:
<many-to-one name="hospital" class="com.Hospital" fetch="select" lazy="false" not-null="true" cascade="save-update">
<column name="HOSPITAL_ID" />
</many-to-one>



后来经别人指点发现我引用的包是
import javax.persistence.CascadeType;
import javax.persistence.Cascade;

而应该使用hibernate annotation包
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

Person表的关联关系应改成
 @ManyToOne()
 @Cascade(value={CascadeType.SAVE_UPDATE})
 @JoinColumn(name = "HOSPITAL_ID")
这样级联更新和新增功能就成功了

posted on 2008-08-26 13:46 gdufo 阅读(895) 评论(0)  编辑  收藏 所属分类: Hibernate


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

Hibernate

友情链接

搜索

最新评论

阅读排行榜

评论排行榜