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

来源:互联网 发布:java中的restfull接口 编辑:程序博客网 时间:2024/05/16 14:26

今天在学习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 releaseINFO: 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,这样再进行操作就没有问题啦。



0 0
原创粉丝点击