欢迎来到天天文库
浏览记录
ID:50783813
大小:28.50 KB
页数:6页
时间:2020-03-14
《Hibernate-1.每棵继承树映射成一张表.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、此文档收集于网络,如有侵权,请联系网站删除一.每个继承树映射成一张表1、理解怎么映射因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤:父类用普通的标签定义在父类中定义一个discriminator,即指定这个区分的字段的名称和类型如:子类使用标签定义,在
2、定义subclass的时候,需要注意如下几点:Subclass标签的name属性是子类的全路径名在Subclass标签中,用discriminator-value属性来标明本子类的discriminator字段(用来区分不同类的字段)的值Subclass标签,既可以被class标签所包含(这种包含关系正是表明了类之间的继承关系),也可以与class标签平行。当subclass标签的定义与class标签平行的时候,需要在subclass标签中,添加extends属性,里面的值是父类的全路径名称。子类的其它属性,像普通类一样,定义在su
3、bclass标签的内部。2、理解怎样存储存储的时候hibernate会自动将鉴别字段值插入到数据库中,在加载数据的时候,hibernate能根据这个鉴别值正确的加载对象代码:Animal.javaprivateintid;privateStringname;privatebooleansex;Pig.javaextendsAnimalprivateintweight;Bird.javaextendsAnimalprivateintheight;4、">此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除5、eight"/>publicclassExtendsTestextendsTestCase{publicvoidtestSave1(){Sessionsession=null;try{session=HibernateUtils.getSession();session.beginTransactio6、n();Pigpig=newPig();pig.setName("猪猪");pig.setSex(true);pig.setWeight(100);session.save(pig);Birdbird=newBird();bird.setName("鸟鸟");bird.setSex(false);bird.setHeight(50);session.save(bird);session.getTransaction().commit();}catch(Exceptione){e.printStackTrace();session.g7、etTransaction().rollback();}finally{HibernateUtils.closeSession(session);}}/***采用load,通过Pig查询*/publicvoidtestLoad1(){Sessionsession=null;try{session=HibernateUtils.getSession();session.beginTransaction();Pigpig=(Pig)session.load(Pig.class,1);System.out.println(pig.getN8、ame());session.getTransaction().commit();此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除}catch(Exceptione){e.printStackTrace();sessio
4、">此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除5、eight"/>publicclassExtendsTestextendsTestCase{publicvoidtestSave1(){Sessionsession=null;try{session=HibernateUtils.getSession();session.beginTransactio6、n();Pigpig=newPig();pig.setName("猪猪");pig.setSex(true);pig.setWeight(100);session.save(pig);Birdbird=newBird();bird.setName("鸟鸟");bird.setSex(false);bird.setHeight(50);session.save(bird);session.getTransaction().commit();}catch(Exceptione){e.printStackTrace();session.g7、etTransaction().rollback();}finally{HibernateUtils.closeSession(session);}}/***采用load,通过Pig查询*/publicvoidtestLoad1(){Sessionsession=null;try{session=HibernateUtils.getSession();session.beginTransaction();Pigpig=(Pig)session.load(Pig.class,1);System.out.println(pig.getN8、ame());session.getTransaction().commit();此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除}catch(Exceptione){e.printStackTrace();sessio
5、eight"/>publicclassExtendsTestextendsTestCase{publicvoidtestSave1(){Sessionsession=null;try{session=HibernateUtils.getSession();session.beginTransactio
6、n();Pigpig=newPig();pig.setName("猪猪");pig.setSex(true);pig.setWeight(100);session.save(pig);Birdbird=newBird();bird.setName("鸟鸟");bird.setSex(false);bird.setHeight(50);session.save(bird);session.getTransaction().commit();}catch(Exceptione){e.printStackTrace();session.g
7、etTransaction().rollback();}finally{HibernateUtils.closeSession(session);}}/***采用load,通过Pig查询*/publicvoidtestLoad1(){Sessionsession=null;try{session=HibernateUtils.getSession();session.beginTransaction();Pigpig=(Pig)session.load(Pig.class,1);System.out.println(pig.getN
8、ame());session.getTransaction().commit();此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除}catch(Exceptione){e.printStackTrace();sessio
此文档下载收益归作者所有