您的位置:首页 > 其它

Hibernate在进行one-to-many时的级联设置-cascade

2015-10-26 11:02 573 查看
今天在学习Hibernate的one-to-many关联关系时,主键类属性如下:

public class Department implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Set<Student> stus;


另一个类的属性如下:
public class Student implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
private String name;
private Department dept;

通过主键中的Set集合写入数据时,提示:
十月 26, 2015 10:58:40 上午 org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release
INFO: HHH000010:<strong> <span style="color:#ff0000;">On release of batch it still contained JDBC statements</span></strong>
Exception in thread "main" java.lang.RuntimeException: <strong><span style="color:#ff0000;">object references an unsaved transient instance - save the transient instance before flushing: com.yel.domain.Student</span></strong>
at com.yel.view.MainTest.main(MainTest.java:45)


原来是主键对应的对应关系映射文件中没有设置级联关系,添加如下设置:
<set name="stus" cascade="save-update">
<key column="dept_id" />
<one-to-many class="Student"/>
</set>设置级联关系的属性为:save-update,这样再进行操作就没有问题啦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: