-
单向多对一查看全部
-
set元素的常用属性查看全部
-
配置单向一对多关系...查看全部
-
单向一对多的表创建...查看全部
-
一对多简介查看全部
-
一对多 举例查看全部
-
映射分为: 一对多 多对一 一对一 多对多 常见:一对多 多对一查看全部
-
使用MyEclipse反向工程生成映射关系 1.在MyEclipse中添加数据库连接 2.添加Hibernate支持,生成配置文件 3.反向生成映射:在DB Browser里选中表->Hibernate Reverse Engineering:填写Java src folder, Java package;勾选Create POJO;勾选Create Data Object,记得去掉Create abstract class;->指定Id Generator->选中表,勾选Include referenced talbes(A->B)和Include referenced talbes(A<-B)查看全部
-
实现单向一对多: 1)在one方的实体中添加保存many方的集合 2)在one方的配置文件中添加<one-to-many>配置 实现单向多对一: 1)在many方的实体中添加one方的引用 2)在many方的配置文件中添加<many-to-one>配置 常用属性: cascade:设置级联关系 【all:对所有操作进行级联操作 save-update:执行保存和更新操作时进行级联操作 delete:执行删除操作时进行级联操作 none:对所有操作不进行级联操作】 inverse:设置由哪一方维护关联关系 【inverse="false"则为主动方,由主动方负责维护关联关系。】查看全部
-
nverse和cascade属性 一、inverse属性 1、一方的hbm.xml文件的<set>节点的inverse属性指定了关联关系的控制方向,默认由one方来维护; 2、关联关系中,inverse="false"则为主动方,由主动方负责维护关联关系; 3、在一对多关联中,设置one方的inverse为true,这将有助于性能的改善。 二、级联(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> 三、测试---信息查询 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属性: 1、当设置了cascade属性不为none时,Hibernate会自动持久化所关联的对象; 2、cascade属性的设置会带来性能上的变动,需要谨慎设置; ———————————————————————————— 属性值 含义和作用 all 对所有操作进行级联操作 save-update 执行保存和更新操作时进行级联操作 delete 执行删除时进行级联操作 none 对所有操作不进行级联操作 ———————————————— 说明:举个栗子,见截图: 在向Grade添加Student后,保存Grade对象时,能不能不需要显示的保存Student对象,答案是可以的,可以使用级联操作:在Grade的映射文件中的<set>节点添加cascade属性不为none,为"save-update".查看全部
-
对于inverse属性的说明; 1、一方的hbm.xml文件的<set>节点的inverse属性指定了关联关系的控制方向,默认由one方来维护; 2、关联关系中,inverse="false"则为主动方,由主动方负责维护关联关系; 3、在一对多关联中,设置one方的inverse为true,这将有助于性能的改善。查看全部
-
创建持久化类和映射文件并配置单向一对多关系 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>查看全部
-
hibernate4.3的初始化 用于会话的获取和关闭: public class HibernateUtil { private static SessionFactory sessionFactory; private static Session session; static{ //创建configuration对象,读取hibernate.cfg.xml文件,完成初始化 Configuration config=new Configuration().configure(); StandardServiceRegistryBuilder ssrb=new StandardServiceRegistryBuilder().applySettings(config.getProperties()); StandardServiceRegistry ssr=ssrb.build(); sessionFactory=config.buildSessionFactory(ssr); } //获取SessionFactory对象 public static SessionFactory getsessionFactory(){ return sessionFactory; } //获取Session对象 public static Session getSession(){ return sessionFactory.openSession(); } //关闭Session对象 public static void closeSession(Session session){ if(session!=null){ session.close(); } } }查看全部
-
什么是一对多的关系呢? 就像班级和学生。站在班级的角度看。班级和学生就是一对多的关系。单向的 那怎么样实现这种关系呢? 1.在数据库中,可以通过添加主外键的关联,表现一对多的关系; 2.在java中,通过在一方持有多方的集合实现,即在“一”的一端中使用<set>元素表示持有“多”的一端的对象。查看全部
举报
0/150
提交
取消