Hibernate学习笔记--第二篇 关联关系映射 many –to –one
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相关推荐
- bootloader学习笔记---第二篇
目录 一.链接地址与跳转 二.bootloader疑难问题 1.应用程序中使用中断导致程序跑飞或者不能重新下载程序? 2.中断向量表具体是怎么重映射? 3.bootloader更新app过程中意外断电 ...
- 网络安全应急演练学习笔记第二篇之应急演练规划
文章目录 0x05 应急演练规划 第一部分 制定演练规划 第二部分 设计演练方案 第三部分 应急演练保障 摘抄 0x05 应急演练规划 第一部分 制定演练规划 演练计划由总指挥部策划小组组织各参演单位 ...
- hibernate学习笔记(总结)
hibernate学习笔记 课程内容 6 1 HelloWorld 6 2 Hibernate原理模拟-什么是O/R Mapping以及为什么要有O/R Mapping 6 3 常见的0/R框架(了解 ...
- 马士兵Hibernate学习笔记
马士兵hibernate学习笔记 课程内容 6课程内容 1 HelloWorld 6 2 Hibernate原理模拟-什么是O/R Mapping以及为什么要有O/R Mapping 6 3 常见的0 ...
- MySQL学习笔记-基础篇1
MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...
- R语言学习笔记——入门篇:第三章-图形初阶
R语言 R语言学习笔记--入门篇:第三章-图形初阶 文章目录 R语言 一.使用图形 1.1.基础绘图函数:plot( ) 1.2.图形控制函数:dev( ) 补充--直方图函数:hist( ) 补充- ...
- MySQL学习笔记-基础篇2
MySQL学习笔记-基础篇2 目录 MySQL学习笔记-基础篇2 8.子查询 8.1 需求分析与问题解决 8.1.1 实际问题 8.1.2 子查询的基本使用 8.1.3 子查询的分类 8.2 单行子查 ...
- Redis学习笔记②实战篇_黑马点评项目
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...
- hibernate学习笔记二
上一篇关于hibernate学习笔记一,主要是作为hibernate的入门知识.没有和spring发生任何关系,这一篇我将把spring集成进去,看spring如何管理hibernate,还有和未使用 ...
最新文章
- Cocos2dx学习笔记9:cocos2dx锚点(Anchor Point)
- 多线程情况下创建连接池
- validate验证长度 vue_vue input 输入校验字母数字组合且长度小于30的实现代码
- python 查找文件名包含指定字符串
- Ubuntu14.04 kylin 安装配置Tomcat7服务器
- 【java设计模式之Command(菜单命令) 】
- 性能测试--jmeter中的HTTP信息头管理器的使用【8】
- php可以运行js代码吗,php可以运行js代码吗?
- Java和Android笔试题
- 计算机调用计算器快捷键,电脑计算器快捷键 电脑计算器快捷键如何设置
- java界面绘制地铁路线_基于 HTML5 Canvas实现 的交互式地铁线路图
- oracle自带的缓存,ORACLE缓存表与ORACLE缓存
- JVM (JAVA虚拟机)
- 高等数学(Space Analytic Geometry)
- 芝诺数解|「十」渝味之城,愉味无穷——重庆十一旅游数据分析报告
- c# 获取config文件的key标签值
- 【Laravel5.3 笔记整理八】Laravel视图(二)逻辑控制、模板布局、文件包含
- 受众同步管理 , 精准再营销
- 解决typeError: init() got an unexpected keyword argument ‘serialized_options’
- nstalling jupyter_contrib_nbextensions 安装nb扩展吧
热门文章
- POJ-1426 Find The Multiple
- zip 打包_Thinkphp6利用ZipArchive打包下载文件
- 多线程处理list_跟大佬聊天,被反问Redis6的多线程真的能提高性能吗?
- 单片机移频防啸叫_基于ARM9的防啸叫音频放大器的设计
- 3-37Pytorch与torchvision
- 织梦php gbk转换utf8,dedecms 5.1 utf-8版本英文怎么修改
- java http请求 工具类_java模拟http请求调用远程接口工具类
- python将一个文件的内容写入另一个文件_Python3中如何将文件中两个关键词中的信息写入到另一文件?...
- java 高德地图 车型比价计算_高德地图的高速公路过路费计算功能是如何实现的?有相应开放的API吗?...
- db h2 数据类型_H2数据库函数及数据类型概述-阿里云开发者社区