-
实现单向一对多: 在one方的实体中添加保存many方的集合 在one放的配置文件中添加<one-to-many>配置 实现单向多对一: 在many方的实体中添加one方的引用 在many方的配置文件中添加<many-to-one>配置 常用属性: cascade:设置级联关系 inverse:设置由哪一方维护关联关系查看全部
-
public static void findGradeByStudent(){ Session session=HibernateUtil.getSession(); Student s1=(Student)session.get(Student.class, 2); System.out.println(s1.getSid()+","+s1.getSname()+","+s1.getSex()); Grade g=s1.getGrade(); System.out.println(g.getGid()+","+g.getGname()+","+g.getGdesc()); HibernateUtil.closeSession(session); }查看全部
-
级联(cascade)属性 配置映射文件: //grade映射文件 <!-- 配置单向一对多关系;设置inverse为true,有多方进行关联关系的维护; 当保存和更新时自动进行级联操作--> <set name="stu" table="stu" inverse="true" cascade="save-update"> <!-- 指定关联的外键列 --> <key column="gid"></key> <one-to-many class="com.entity.Student"/> </set> //student映射文件 <many-to-one name="grade" class="com.entity.Grade" column="gid" cascade="all"></many-to-one>查看全部
-
对于inverse属性的说明; 1、一方的hbm.xml文件的<set>节点的inverse属性指定了关联关系的控制方向,默认由one方来维护; 2、关联关系中,inverse="false"则为主动方,由主动方负责维护关联关系; 3、在一对多关联中,设置one方的inverse为true,这将有助于性能的改善。 <!-- 配置单向一对多关系,设置inverse为true,有多方进行关联关系的维护 --> <set name="stu" table="stu" inverse="true"> <!-- 指定关联的外键列 --> <key column="gid"></key> <one-to-many class="com.entity.Student"/> </set>查看全部
-
配置双向的关联关系: 1、分别在持久化类中定义另一方的引用; 一方:private Set<Student>students=new HashSet<Student>();并setter、getter 多方:private Grade grade;并setter、getter; 2、在一方映射文件配置一对多属性集合与在多方配置多对一关联关系 //在一方配置关联关系 <set name="一方实体类定义的多方的引用,即多方属性Students" table="多方的表名"> <key column="关联外键的列gid"></key> <one-to-many class="多方实体类的全类名com.imooc.entity.Student" ></one> </set> //在多方配置关联关系 <many-to-one name="指定对应的属性的名称" class="对应实体类的全类名com.imooc.entity.Grade" column="指定外键的列名gid" > </many-to-one> //测试方法 public static void save(){ Grade g=new Grade("Java一班", "Java软件开发一班"); Student s1=new Student("小米", "女"); Student s2=new Student("小明","男"); //创建多对一的配置 g.getStu().add(s1); g.getStu().add(s2); s1.setGrade(g); s2.setGrade(g); Session session=HibernateUtil.getSession(); Transaction transaction=session.beginTransaction(); session.save(g); session.save(s1); session.save(s2); transaction.commit(); HibernateUtil.closeSession(session); }查看全部
-
//单向多对一之添加学生信息 public static void save(){ Grade g=new Grade("Java一班", "Java软件开发一班"); Student s1=new Student("小米", "女"); Student s2=new Student("小明","男"); //创建多对一的配置 s1.setGrade(g); s2.setGrade(g); Session session=HibernateUtil.getSession(); Transaction transaction=session.beginTransaction(); session.save(g); session.save(s1); session.save(s2); transaction.commit(); HibernateUtil.closeSession(session); }查看全部
-
单向多对一的配置: 1.在多方持久类定义一方的引用 private Grade grade;并getter,setter 2.在多方的映射文件中添加 <many-to-one name="指定对一方的引用,即一方引用所定义的属性grade" class="一方对应的持久化类,即关联实体类com.imooc.entity.Grade" cloumn="外键的列名gid" ></many-to-one>查看全部
-
单向多对一关联: 1.多对一的关系和关系数据库中的外键参照关系最匹配,即在己方(多方)表中的一个外键参照另一个表的主键; 2.通过在多方持有一方的引用实现,需要在“多”的一端使用<many-to-one>配置查看全部
-
一对多映射 一、简介 什么是一对多的关系呢? 如同班级与学生的关系,站在班级的角度看,班级为一方,学生为多方,这种关系是单向的。 如何实现一对多的关系呢? 1.在数据库中,可以通过添加主外键的关联,表现一对多的关系; 2.在java中,通过在一方持有多方的集合实现,即在“一”的一端中使用<set>元素表示持有“多”的一端的对象。 二、实例 (1)创建HibernateUtil工具类 1.hibernate初始化 2.获取sessionFactory和session对象 3.关闭session对象 (2)在MySQL中创建表 1.创建班级表 2.创建学生表 (3)创建持久化类和映射文件并配置单向一对多关系 a.持久化类 1.创建学生持久化类 2.创建班级持久化类(在一方定义一个多方集合) b.配置映射文件 1.班级映射文件(配置单向一对多关系) 2.学生映射文件 3.hibernate.cfg.xml中指定映射文件、 (4)测试 1.添加和查询学生信息 2.修改和删除学生信息查看全部
-
创建持久化类和映射文件并配置单向一对多关系 a.持久化类 1.创建学生持久化类 2.创建班级持久化类(在一方定义一个多方集合) b.配置映射文件 //班级映射文件 <class name="com.entity.Grade" table="grade"> <id name="gid" column="gid" type="java.lang.Integer"> <generator class="increment"></generator> </id> <property name="gname" type="java.lang.String"> <column name="gname" not-null="true" length="20"></column> </property> <property name="gdesc" type="java.lang.String"> <column name="gdesc"></column> </property> <!-- 配置单向一对多关系 --> <set name="一方实体类定义的多方的引用,即集合属性students" table="多方的表名Students"> <key column="关联外键的列gid"></key> <one-to-many class="多方实体类的全类名com.entity.Student"></one> </set> </class> //学生映射文件(同上略) //hibernate.cfg.xml中配置 <!-- 指定映射文件 --> <mapping resource="com/entity/Grade.hbm.xml"></mapping> <mapping resource="com/entity/Student.hbm.xml"></mapping>查看全部
-
test查看全部
-
hibernate对应数据类型查看全部
-
cascade属性——————级联属性查看全部
-
配置一对多查看全部
-
Set元素的常用属性查看全部
举报
0/150
提交
取消