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

Hibernate初探之一对多映射

为什么视频中事务不用调用begin()方法直接提交就可以运行,我的却提示事务没有成功打开?我百度了下,事务提交之前先调用事务的begin()方法就完美运行了?
在 class Grade 中,
Set<Student> students;//为初始化
//改为
Set<Student> students =new HashSet<Student>();
这样 g.getStudents() 已初始化。
@captainjk 将集合初始化一下
@qq_夜_28 因为main方法是静态的,而静态方法中只能使用静态方法
为什么不用JUnit单元测试

最新回答 / 慕移动9181930
少写了参数,无限循环了good,如果你能把代码缩进一下那就更好了
唉 我的根本不能运行 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 要不然每次数据库操作都会创建新表会覆盖你原来的表,导致已插入的数据丢失。

最新回答 / 锡隽
感觉报空指针的情况很多 , 我遇到的 mapping里没写package属性会报空指针 , Set后面没有写new HashSet也会报空指针 。。  好尴尬
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的一方根本就不维护了,怎么可能去更新多的一方的表,也是醉了
课程须知
本课程主要讲解Java中Hibernate中的关联映射,需要对Hibernate基本用法、ORM的基本概念、单表映射等相关知识有一定的基础。
老师告诉你能学到什么?
1、Hibernate关联映射的类型 2、单向一对多关联的配置 3、单向多对一关联的配置 4、cascade和inverse属性的作用

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消