hibernate 一对一 one to one的两种配置方式

版权声明:本文为博主原创文章,未经博主允许不得转载。
- public class Person {
- private int id;
- private String name;
- private IdCard idCard;
- public Person() {
- }
- public Person(int id, String name, IdCard idCard) {
- this.id = id;
- this.name = name;
- this.idCard = idCard;
- }
- 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;
- }
- public IdCard getIdCard() {
- return idCard;
- }
- public void setIdCard(IdCard idCard) {
- this.idCard = idCard;
- }
- }
- public class IdCard {
- private int id;
- private Date usefullLife;
- private Person person;
- public IdCard() {
- }
- public IdCard(int id, Date usefullLife, Person person) {
- this.id = id;
- this.usefullLife = usefullLife;
- this.person = person;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public Date getUsefullLife() {
- return usefullLife;
- }
- public void setUsefullLife(Date usefullLife) {
- this.usefullLife = usefullLife;
- }
- public Person getPerson() {
- return person;
- }
- public void setPerson(Person person) {
- this.person = person;
- }
- }
one-to-one方式一:

IdCard.hbm.xml
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <!--
- Mapping file autogenerated by MyEclipse Persistence Tools
- -->
- <hibernate-mapping>
- <class name="com.huawei.domain.IdCard" table="id_card">
- <id name="id" type="java.lang.Integer">
- <column name="id" />
- <generator class="foreign" >
- <param name="property">person</param>
- </generator>
- </id>
- <property name="usefullLife" type="java.util.Date">
- <column name="usefull_life"/>
- </property>
- <one-to-one name="person" constrained="true"></one-to-one>
- </class>
- </hibernate-mapping>
Person.hbm.xml
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <!--
- Mapping file autogenerated by MyEclipse Persistence Tools
- -->
- <hibernate-mapping>
- <class name="com.huawei.domain.Person">
- <id name="id" type="java.lang.Integer">
- <column name="id" />
- <generator class="native" />
- </id>
- <property name="name" type="java.lang.String">
- <column name="name" length="5" not-null="false" />
- </property>
- <one-to-one name="idCard"></one-to-one>
- </class>
- </hibernate-mapping>
one-to-one方式二:

IdCard.hbm.xml
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <!--
- Mapping file autogenerated by MyEclipse Persistence Tools
- -->
- <hibernate-mapping>
- <class name="com.huawei.domain.IdCard" table="id_card">
- <id name="id" type="java.lang.Integer">
- <!--
- <column name="id" />
- <generator class="foreign" >
- <param name="property">person</param>
- </generator>
- -->
- <column name="id" />
- <generator class="native" />
- </id>
- <property name="usefullLife" type="java.util.Date">
- <column name="usefull_life"/>
- </property>
- <!-- <one-to-one name="person" constrained="true"></one-to-one> -->
- <many-to-one name="person" column="person_id" unique="true"></many-to-one>
- </class>
- </hibernate-mapping>
Person.hbm.xml
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <!--
- Mapping file autogenerated by MyEclipse Persistence Tools
- -->
- <hibernate-mapping>
- <class name="com.huawei.domain.Person">
- <id name="id" type="java.lang.Integer">
- <column name="id" />
- <generator class="native" />
- </id>
- <property name="name" type="java.lang.String">
- <column name="name" length="5" not-null="false" />
- </property>
- <one-to-one name="idCard" property-ref="person"></one-to-one>
- </class>
- </hibernate-mapping>
测试:
- Session s = null;
- try{
- s = HibernateSessionFactory.getSession();
- // Person person = (Person)s.get(Person.class, id);
- // System.out.println(person.getIdCard().getUsefullLife());
- IdCard idCard = (IdCard)s.get(IdCard.class, id);
- System.out.println(idCard.getPerson().getName());
- } catch (HibernateException e) {
- e.printStackTrace();
- }
hibernate 一对一 one to one的两种配置方式的更多相关文章
- Hibernate中双向多对多的两种配置方式
Hibernate中双向多对多的两种配置方式 1.建立多对多双向关联关系 package cn.happy.entitys; import java.util.HashSet; import java ...
- IOC容器在web容器中初始化——(一)两种配置方式
参考文章http://blog.csdn.net/liuganggao/article/details/44083817,http://blog.csdn.net/u013185616/article ...
- 第四节:框架前期准备篇之进程外Session的两种配置方式
一. 基本介绍 1. 背景:Asp.Net默认的Session机制是进程内,存储在服务器端内存中,有这么几个缺点: ①:既然存在内存中,空间有限,不能存储大数据量信息,数据量多的话Session会被挤 ...
- springboot之jackson的两种配置方式
springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format ...
- 学习JavaWeb aop两种配置方式
aop aop:面向切面编程,它可以解决重复代码. aop有两种方式: 一..xml方式 1.在springmvc-servlet.xml中配置aop,应用bean文件: <!--aop配置-- ...
- (一)spring aop的两种配置方式。
sring aop的方式有两种:(1)xml文件配置方式(2)注解的方式实现,我们可以先通过一个demo认识spring aop的实现,然后再对其进行详细的解释. 一.基于注解的springAop配置 ...
- eureka集群的两种配置方式:配置文件方式与DNS方式
eureka client获取serviceUrls(eureka server地址)列表的过程: 1. 根据use-dns-for-fetching-service-urls属性判断是从dns还是从 ...
- mybatis一对一联表查询的两种常见方式
1.一条语句执行查询(代码如下图) 注释:class表(c别名),teacher表(t别名)teacher_id为class表的字段t_id为teacher表的字段,因为两者有主键关联的原因,c_i ...
- spring aop两种配置方式
基于注解的Spring AOP开发 简单案例快速入门 定义目标类接口和实现类 /** * Created by zejian on 2017/2/19.*/ //接口类 public interfac ...
随机推荐
- 打地鼠Demo
using UnityEngine; using System.Collections; public enum MoleStates { NormalState,// 初始状态 UpState,// ...
- 关于关闭TAB,IFRAME占用的内存不能释放问题
资料来源:http://jxd-zxf.iteye.com/blog/1440611 使用TAB时注意,如果TAB是引用IFRAME,关闭TAB时IFRAME不会被销毁从而导致内存不能释放,大量使用T ...
- ssh-keygen生成私钥和公钥
ssh-keygen生成私钥和公钥 例: 用户名:root 服务器地址:192.168.1.10 生成:ssh-keygen -t rsa -b 4096 -C“root@192.168.1.10” ...
- git pull 免密
linux下 在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式: touch .git-credentials vim .git-credentia ...
- Zabbix 监控端口状态并邮件报警
Zabbix监控端口 前提 zabbix安装 zabbix邮件报警 添加监控项 添加触发器 添加动作 设置完成后,在配置过报警媒介后也就是 邮件报警 后就完成了.
- python数据类型内部结构解剖
一.前言 我们知道,python是一种动态语言,可以将任何类型的数据赋给任何变量,譬如: # Python代码 x = 4 x = "four" 这里已经将 x 变量的内容由整型转 ...
- linux系统命令笔记
一.linux系统目录 /bin 系统命令目录 /dev 设备目录 /home 每个系统用户在home下都有一个目录, 每个用户登录到系统后会自动登录到这个目录下, root用户会在/root文件夹下 ...
- net下载文件方法汇总
//TransmitFile实现下载 protected void Button1_Click1(object sender, EventArgs e) { /* 微软为Response对象提供了一个 ...
- MVC,MVP,MVVM区别联系
本质上都是MVC,MVC在不同技术中的应用衍生出MVP,MVVM MVC:b/s MVP:c/s,尤其winform MVVM:wpf http://www.codeproject.com/Artic ...
- How to Check if Linux (Ubuntu, Fedora Redhat, CentOS) is 32-bit or 64-bit
The number of CPU instruction sets has kept growing, and likewise for the operating systems which ar ...