Hibernate 基于map集合映射
来源:互联网 发布:sex8cc永久域名 编辑:程序博客网 时间:2024/04/28 19:58
基于map集合映射
1、 实体类中使用List集合
publicclass Grade {
privateintid;
private Stringname;
private Map<String,Student>students = new HashMap<String,Student>(0);
}
2、 映射文件
<hibernate-mappingpackage="cn.siggy.pojo">
<classname="Grade">
<idname="id">
<generatorclass="native"></generator>
</id>
<propertyname="name"/>
<mapname="students"cascade="all">
<!-- key表示外键 -->
<keycolumn="grade_id"/>
<!-- map-key是映射为map集合时,对应key值 key值建议为唯一 -->
<map-keytype="string"column="name"/>
<one-to-manyclass="Student"/>
</map>
</class>
</hibernate-mapping>
3、 测试代码
@Test
publicvoidtestSave() throws HibernateException, SerialException, SQLException{
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory(new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties()).build());
Session session = null;
Transaction tx = null;
try{
session = factory.openSession();
tx = session.beginTransaction();
Grade grade = new Grade();
grade.setName("基础");
Student stu = new Student();
stu.setName("张三疯");
stu.setAge(22);
Student stu1 = new Student();
stu1.setName("老王");
stu1.setAge(23);
Student stu2 = new Student();
stu2.setName("老李");
stu2.setAge(23);
//关联
grade.getStudents().add(stu);
grade.getStudents().add(stu1);
grade.getStudents().add(stu2);
//保存数据的顺序是根据外键的配置来决定的
//如果外键不能为null,那么先保存一的一端
//如果外键可以为null,则可以随意保存
session.save(grade);
session.save(stu);
session.save(stu1);
session.save(stu2);
tx.commit();
}catch (HibernateException e) {
if(tx!=null)
tx.rollback();
e.printStackTrace();
throw e;
}finally{
HibernateUtil.closeSession();
}
}
@Test
publicvoid 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("gradeName="+grade.getName());
System.out.println("grade所对应的多的一端的数据");
Map<String,Student> map = grade.getStudents();
System.out.println(map.get("老王").getAge());
tx.commit();
}catch (HibernateException e) {
if(tx!=null)
tx.rollback();
e.printStackTrace();
throw e;
}finally{
HibernateUtil.closeSession();
}
}
- Hibernate 基于map集合映射
- Hibernate基于List和map集合映射
- Hibernate集合映射---Map
- Hibernate Map集合映射
- Hibernate映射 --- 集合映射(Set List Map )
- Hibernate 基于List集合映射
- Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
- Hibernate Map集合映射简单例子
- hibernate--集合映射(map、list)
- Hibernate集合映射之Map-----element映射基本类型值
- Hibernate集合映射之Map-----element映射实体类型值
- Hibernate学习笔记:集合映射之映射Map
- Hibernate学习笔记:集合映射之映射Map
- Hibernate之映射值类型集合(映射map)
- Hibernate高级映射 --- 集合映射(Set List Map )
- Hibernate集合映射之Map-----element映射实体类型值
- Hibernate的Set,List,Map集合映射,数组映射
- Hibernate(八)Hibernate集合Map关系映射
- 浅析Javascript匿名函数与自执行函数
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛-H Skiing
- spring02依赖注入DI
- 字符串碎片问题,例如“aaabbaaac”是由下面碎片组成“aaa”,"bb","c",则计算所有碎片的平均长度
- web.xml
- Hibernate 基于map集合映射
- redis 基本类型
- 背包问题(0-1背包、完全背包、多重背包)详解
- 最大长方形(二)nsoj 258
- 2017ACM新疆区域赛网络赛A题和C题
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛(G. Query on a string)kmp+线段树
- servlet实现简单的用户密码登录
- 项目当中的理性主义和实证主义
- POJ