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,这样再进行操作就没有问题啦。
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,这样再进行操作就没有问题啦。
相关文章推荐
- LeetCode_Remove Duplicates from Sorted Array
- Qt的三方库
- 九度OJ 1182:统计单词 (计数)
- 如何将word转换成pdf的两种便捷方法
- 最全测试工具大全
- MVC5中页面传值,保存,回传
- 九度OJ 1182:统计单词 (计数)
- 免安装版MySQL的配置
- 327 (Div. 2)A
- HTML1-排版,字体,列表,图像,超链接
- 【记录】Android html调用Java代码
- Android Hook神器:XPosed入门与登陆劫持演示
- Ubuntu12.04配置JDK1.8
- JQ基础使用备忘技巧(一)
- jni操作bitmap
- Linux学习过程中做过的东西总结
- 九度OJ 1181:遍历链表 (链表、排序)
- HttpClient和HttpURLConnection的区别
- 九度OJ 1181:遍历链表 (链表、排序)
- POJ1251 Jungle Roads