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

Hibernate初探之一对多映射

"one for all" vs "all for one"
——《我的英雄学院》
g.getStudents().add(stu1);
g.getStudents().add(stu2);
stu1.setGrade(g);
stu2.setGrade(g);
感觉关系维护重复了呢?
我试了一下,注释掉g.getStudents().add(stu1);
g.getStudents().add(stu2);没有报错。感觉:这个只需要多方来表现关系就OK,不需要一方再来写一次。

已采纳回答 / 飞翔的小牛
<many-to-one name="grade" class="com.imooc.entity.Grade" column="gid" cascade="save-update"></many-to-one>这里面的 column="gid" 表示Grade表里面的gid gid 在Student表中是外键,gid 在Grade表中是主键。

最新回答 / 一只丑橘
inverse属性必须是在set标签里的吧,hibernate配置文件中的inverse属性表示反转,一般是在<set>节点中指定关联关系的控制方向,默认由one方来维护,如果双方都来维护,对我们系统的性能是有影响的。在one方把inverse属性设置为‘true’,由many方来进行维护,在一对多的关联中,只能设置one方的inverse为true,这将有助于性能的改善

最新回答 / 3你还差得远呢
<...code...>Grade实体类中需要创建set<Student>的get/set方法

已采纳回答 / Forget_Me
项目中框架的版本是很重要的一环,不同的版本API也不同。所以在确定一个项目的时候,一般都会规定项目所使用的框架版本。如果升级后的构建方法再次出现变化,并且你的项目需要使用这个版本的框架,那么就只能去学习了。

最新回答 / qq_星河k_0
native是采用本地数据库的默认主键生成方式,主键没有默认值,说明你没有设置主键,或者说默认主键是null。你把Integer改为Int就行了,int值默认是0 。
报错:An association from the table STUDENT refers to an unmapped class: Grade

如果按照网上的方法不行就试试下面的方法:

将&lt;many-to-one&gt;改成如下:(注:这是我用eclipse自动生成的hbm文件)

&lt;many-to-one name=&quot;grade&quot; class=&quot;ManyToOne.Grade&quot; fetch=&quot;join&quot;&gt;
&lt;column name=&quot;gid&quot; /&gt;
&lt;/many-to-one&gt;

希望对你们有用
卧槽!!!!!!!
额,这个映射文件不是可以直接NEW --》 Hibanete XML Mapping File然后选择对应的实体类吗?
//获取session
public static Session getSession() {
session = sessionFactory.openSession();
return session;
}
//关闭session
public static void closeSession(Session session) {
if(session!=null) {
session.close();
}
}
hibernate 5.x
static {
Configuration config = new Configuration().configure();
sessionFactory = config.buildSessionFactory();
}

//获取sessionFactory
public static SessionFactory geSessionFactory() {
return sessionFactory;
}
我觉得用第一门课的那个老师添加Jar包的方法很不错。在User Libraries里面把jar包添加,然后直接引入
这个方法使用多次发现班级的id会自动一直增加
课程须知
本课程主要讲解Java中Hibernate中的关联映射,需要对Hibernate基本用法、ORM的基本概念、单表映射等相关知识有一定的基础。
老师告诉你能学到什么?
1、Hibernate关联映射的类型 2、单向一对多关联的配置 3、单向多对一关联的配置 4、cascade和inverse属性的作用

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消