hibernate的list映射和map映射
来源:互联网 发布:json后台传值到前台 编辑:程序博客网 时间:2024/06/04 18:04
List映射
Grade类
public class Grade {private int id;private String name;private List<Student> students=new ArrayList<Student>();//省略get/set方法}Student类
public class Student {private int id;private String name;private int age;//省略get/set方法}Grade.hbm.xml配置文件
<hibernate-mapping package="com.test.pojo"><class name="Grade"><id name="id"><generator class="native"></generator></id><property name="name" /><list name="students"> <key column="grade_id" not-null="true"></key> <!-- 在多的一端产生一列用来表示顺序,如果不指明列名默认为idx 值由hibernate来维护 --> <list-index column="sort"/> <one-to-many class="Student"/></list></class></hibernate-mapping>Student.hbm.xml配置文件
<hibernate-mapping package="com.test.pojo"><class name="Student"><id name="id"><generator class="native"></generator></id><property name="name" /><property name="age"/></class></hibernate-mapping>
测试类
public class HibernateTest {@Testpublic void testCreateDB(){Configuration cfg=new Configuration().configure();SchemaExport se=new SchemaExport(cfg);//第一个参数表示是否生成ddl脚本,第二个参数表示是否执行到数据库中se.create(true, true);}/** * 保存数据 */@Testpublic void save(){Session session=null;Transaction tx=null;try{session=HibernateUtil.getSession();tx=session.beginTransaction();Grade grade=new Grade();grade.setName("大一");Student stu=new Student();stu.setName("张三");stu.setAge(20);Student stu1=new Student();stu1.setName("李四");stu1.setAge(20);Student stu2=new Student();stu2.setName("王五");stu2.setAge(20);grade.getStudents().add(stu);grade.getStudents().add(stu1);grade.getStudents().add(stu2);session.save(grade);session.save(stu);session.save(stu1);session.save(stu2);tx.commit();}catch(Exception e){if(tx!=null)tx.rollback();e.printStackTrace();}finally{HibernateUtil.closeSession();}}@Testpublic void testGet(){Session session=null;Transaction tx=null;try{session=HibernateUtil.getSession();tx=session.beginTransaction();//取数据Grade grade=(Grade) session.get(Grade.class,1);System.out.println("grade_name:"+grade.getName());Iterator<Student> it=grade.getStudents().iterator();while(it.hasNext()){Student student=(Student)it.next();System.out.println("student_name:"+student.getName());}tx.commit();}catch(Exception e){tx.rollback();e.printStackTrace();}finally{HibernateUtil.closeSession();}}}
Map映射
只展示与List映射不同之处
Grade类
public class Grade {private int id;private String name;private Map<String,Student> students=new HashMap<String,Student>();//省略get/set方法}
Grade.hbm.xml配置文件
<hibernate-mapping package="com.test.pojo"><class name="Grade"><id name="id"><generator class="native"></generator></id><property name="name" /><map name="students" cascade="all"><!-- key表示外键 --> <key column="grade_id" /> <!-- map-key是映射为map集合时,对应key值,建议为唯一的 --> <map-key type="String" column="name"/> <one-to-many class="Student"/></map></class></hibernate-mapping>
测试类(保存数据和获取数据代码)
@Testpublic void save(){Session session=null;Transaction tx=null;try{session=HibernateUtil.getSession();tx=session.beginTransaction();Grade grade=new Grade();grade.setName("大一");Student stu=new Student();stu.setName("张三");stu.setAge(20);Student stu1=new Student();stu1.setName("李四");stu1.setAge(20);Student stu2=new Student();stu2.setName("王五");stu2.setAge(20);grade.getStudents().put(stu.getName(), stu);grade.getStudents().put(stu1.getName(), stu1);grade.getStudents().put(stu2.getName(), stu2);session.save(grade);session.save(stu);session.save(stu1);session.save(stu2);tx.commit();}catch(Exception e){if(tx!=null)tx.rollback();e.printStackTrace();}finally{HibernateUtil.closeSession();}}@Testpublic void testGet(){Session session=null;Transaction tx=null;try{session=HibernateUtil.getSession();tx=session.beginTransaction();//取数据Grade grade=(Grade) session.get(Grade.class,1);System.out.println("grade_name:"+grade.getName());Map<String,Student> map=grade.getStudents();System.out.println(map.get("张三").getAge());tx.commit();}catch(Exception e){tx.rollback();e.printStackTrace();}finally{HibernateUtil.closeSession();}}
所有代码实例结果在此不做展示,可自己运行查看。
阅读全文
0 0
- hibernate的list映射和map映射
- hibernate的list映射和map映射
- Hibernate基于List和map集合映射
- Hibernate的Set,List,Map集合映射,数组映射
- Hibernate映射 --- 集合映射(Set List Map )
- Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- Hibernate的List映射
- Hibernate的List映射
- Hibernate的List映射
- 【Hibernate】Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate (四) Set List Map 集合映射 和排序
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate常见的集合映射 Set,List,Array,Map,Bag
- Hibernate的集合映射(Set、List、Array、Map、Bag)
- Hibernate之映射集合(值类型的set,bag,idbag,list和map)
- hibernate学习笔记(map,set,list映射)
- Hibernate List&Map&array&Set映射出错
- robot framework 元素定位问题
- Docker之Docker镜像管理
- BS与CS的恩恩怨怨
- es6 笔记
- 关于在web页面乱码
- hibernate的list映射和map映射
- ROS程序发布随机速到turltlesim
- CodeForces 679A Bear and Prime 100【交互题+数论】
- 每天积累一点(二)--mysql事物级别
- POJ 3076 Sudoku 精确覆盖问题DLX
- mysql (三)存储引擎
- xhconn.js中需要注意的问题
- 2017 HDU 6105 多校联合赛 Gameia
- Java自定义类加载器与双亲委派模型