为了账号安全,请及时绑定邮箱和手机立即绑定

Hibernate初探之一对多映射

@captainjk 将集合初始化一下
@qq_夜_28 因为main方法是静态的,而静态方法中只能使用静态方法
为什么不用JUnit单元测试
唉 我的根本不能运行 console也不打印什么信息
Test类中为啥把方法都定义成静态的?
本节出现的问题:1.使用grade.getStudents().add(stu1);抛出异常。办法:使用前调setStudetns事例化集合:grade.setStudents( new HashSet<Student>());2.在findStudentsByGrade()方法中出现空指针异常,检查后发现是查询grade返回的是null。解决办法:将hibernate.cfg.xml中的<property name="hbm2ddl.auto">create</property>的create修改为update 要不然每次数据库操作都会创建新表会覆盖你原来的表,导致已插入的数据丢失。
inverse 和 cascade 的机制及作用范围都不一样,两者并不冲突
在findStudentsByGrade()方法中出现空指针异常,在Grade的构造方法里,初始化学生类
public Grade(String gname, String gdesc) {

super();
this.students = new HashSet<Student>();
this.gname = gname;
this.gdesc = gdesc;
}
给变量起了个名字group,程序崩了,搞了半天才想起group是MySQL的关键字( ′_>`)
初始化一下
Grade g=new Grade("Java二班", "Java软件开发二班");
g.setStudents(new HashSet<Student>());
inverse="true" 把维护的权限给了多的一方,1的一方根本就不维护了,怎么可能去更新多的一方的表,也是醉了
inverse="true" cascade="all" 这两个属性加上去,要是能在学生表中添加外键就见鬼了
谁实话,实在不喜欢Hibernate的update, delete 方法,每次都要加载过来再去删除 ? 这样好吗?
说g.getStudents().add(stu1);有异常的,在写Grade实体化类时,先初始化一下student集合private Set<Student> students = new HashSet<Student>();
打酱油的路过
课程须知
本课程主要讲解Java中Hibernate中的关联映射,需要对Hibernate基本用法、ORM的基本概念、单表映射等相关知识有一定的基础。
老师告诉你能学到什么?
1、Hibernate关联映射的类型 2、单向一对多关联的配置 3、单向多对一关联的配置 4、cascade和inverse属性的作用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消