many –to –one

假设2个对象,分别是Person and Address .

1个Address中含有多个Person

分别建立类

package cn.itcase.hibernate.domain;public class Address {private int id;private String street;public int getId() {return id;}
public void setId(int id) {this.id = id;}public String getStreet() {return street;
}
public void setStreet(String street) {this.street = street;
}}package cn.itcase.hibernate.domain;public class Person {private int id;private String name;private Address address;public Address getAddress() {return address;
}
public void setAddress(Address address) {this.address = address;
}
public int getId() {return id;
}
public void setId(int id) {this.id = id;
}
public String getName() {return name;
}
public void setName(String name) {this.name = name;
}
}

相对应的配置文件为

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcase.hibernate.domain"><class name="Address" table="address"><id name="id" ><generator class="native" /></id><property name="street"></property></class>
</hibernate-mapping><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcase.hibernate.domain"><class name="Person" table="person"><id name="id" ><generator class="native" /></id><property name="name" /><!--留意这里 name的名称必须和address类中的private Address addr;对象名称一致 列名可任意命名,最好是具有相对意义-->   <many-to-one name="address" column="addressId"/></class>
</hibernate-mapping>

//测试多对一例子

package cn.itcast.hibernate;import java.util.HashSet;
import java.util.Set;import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;import cn.itcase.hibernate.domain.Address;
import cn.itcase.hibernate.domain.Person;public class many2one2 {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubPerson depart=add();Person emp=query(1);//System.out.println(emp.getDepart().getName());//queryDepart(3);//System.out.println(addrquery(1).getPer().getName());}static Address addrquery(int id){Session s=null;Transaction tx=null;try{s=HibernateUtil.getSession();tx=s.beginTransaction();Address addr=(Address)s.get(Address.class, id);//System.out.print(emp.getDepart().getName());Hibernate.initialize(addr.getStreet());tx.commit();return addr;}finally{if(s!=null)s.close();}  }static Person query(int pid){Session s=null;Transaction tx=null;try{s=HibernateUtil.getSession();tx=s.beginTransaction();Person p=(Person)s.get(Person.class, pid);tx.commit();return p;}finally{if(s!=null)s.close();}      }static Person add(){Session s=null;Transaction tx=null;try{Address addr1=new Address();addr1.setStreet("add1");   Person p1=new Person();p1.setName("p1");Person p2=new Person();p2.setName("p2");p1.setAddress(addr1);p2.setAddress(addr1);s=HibernateUtil.getSession();tx=s.beginTransaction();s.save(addr1);s.save(p1);s.save(p2);tx.commit();return p1;}finally{if(s!=null)s.close();}   }}

转载于:https://www.cnblogs.com/meetweb/archive/2012/12/15/2819807.html

Hibernate学习笔记--第二篇 关联关系映射 many –to –one相关推荐

  1. bootloader学习笔记---第二篇

    目录 一.链接地址与跳转 二.bootloader疑难问题 1.应用程序中使用中断导致程序跑飞或者不能重新下载程序? 2.中断向量表具体是怎么重映射? 3.bootloader更新app过程中意外断电 ...

  2. 网络安全应急演练学习笔记第二篇之应急演练规划

    文章目录 0x05 应急演练规划 第一部分 制定演练规划 第二部分 设计演练方案 第三部分 应急演练保障 摘抄 0x05 应急演练规划 第一部分 制定演练规划 演练计划由总指挥部策划小组组织各参演单位 ...

  3. hibernate学习笔记(总结)

    hibernate学习笔记 课程内容 6 1 HelloWorld 6 2 Hibernate原理模拟-什么是O/R Mapping以及为什么要有O/R Mapping 6 3 常见的0/R框架(了解 ...

  4. 马士兵Hibernate学习笔记

    马士兵hibernate学习笔记 课程内容 6课程内容 1 HelloWorld 6 2 Hibernate原理模拟-什么是O/R Mapping以及为什么要有O/R Mapping 6 3 常见的0 ...

  5. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  6. R语言学习笔记——入门篇:第三章-图形初阶

    R语言 R语言学习笔记--入门篇:第三章-图形初阶 文章目录 R语言 一.使用图形 1.1.基础绘图函数:plot( ) 1.2.图形控制函数:dev( ) 补充--直方图函数:hist( ) 补充- ...

  7. MySQL学习笔记-基础篇2

    MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...

  8. Redis学习笔记②实战篇_黑马点评项目

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  9. hibernate学习笔记二

    上一篇关于hibernate学习笔记一,主要是作为hibernate的入门知识.没有和spring发生任何关系,这一篇我将把spring集成进去,看spring如何管理hibernate,还有和未使用 ...

最新文章

  1. Cocos2dx学习笔记9:cocos2dx锚点(Anchor Point)
  2. 多线程情况下创建连接池
  3. validate验证长度 vue_vue input 输入校验字母数字组合且长度小于30的实现代码
  4. python 查找文件名包含指定字符串
  5. Ubuntu14.04 kylin 安装配置Tomcat7服务器
  6. 【java设计模式之Command(菜单命令) 】
  7. 性能测试--jmeter中的HTTP信息头管理器的使用【8】
  8. php可以运行js代码吗,php可以运行js代码吗?
  9. Java和Android笔试题
  10. 计算机调用计算器快捷键,电脑计算器快捷键 电脑计算器快捷键如何设置
  11. java界面绘制地铁路线_基于 HTML5 Canvas实现 的交互式地铁线路图
  12. oracle自带的缓存,ORACLE缓存表与ORACLE缓存
  13. JVM (JAVA虚拟机)
  14. 高等数学(Space Analytic Geometry)
  15. 芝诺数解|「十」渝味之城,愉味无穷——重庆十一旅游数据分析报告
  16. c# 获取config文件的key标签值
  17. 【Laravel5.3 笔记整理八】Laravel视图(二)逻辑控制、模板布局、文件包含
  18. 受众同步管理 , 精准再营销
  19. 解决typeError: init() got an unexpected keyword argument ‘serialized_options’
  20. nstalling jupyter_contrib_nbextensions 安装nb扩展吧

热门文章

  1. POJ-1426 Find The Multiple
  2. zip 打包_Thinkphp6利用ZipArchive打包下载文件
  3. 多线程处理list_跟大佬聊天,被反问Redis6的多线程真的能提高性能吗?
  4. 单片机移频防啸叫_基于ARM9的防啸叫音频放大器的设计
  5. 3-37Pytorch与torchvision
  6. 织梦php gbk转换utf8,dedecms 5.1 utf-8版本英文怎么修改
  7. java http请求 工具类_java模拟http请求调用远程接口工具类
  8. python将一个文件的内容写入另一个文件_Python3中如何将文件中两个关键词中的信息写入到另一文件?...
  9. java 高德地图 车型比价计算_高德地图的高速公路过路费计算功能是如何实现的?有相应开放的API吗?...
  10. db h2 数据类型_H2数据库函数及数据类型概述-阿里云开发者社区