2013-02-19 17:44 11445人阅读 评论(1) 收藏 举报
 分类:
hibernate(2) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

  1. public class Person {
  2. private int id;
  3. private String name;
  4. private IdCard idCard;
  5. public Person() {
  6. }
  7. public Person(int id, String name, IdCard idCard) {
  8. this.id = id;
  9. this.name = name;
  10. this.idCard = idCard;
  11. }
  12. public int getId() {
  13. return id;
  14. }
  15. public void setId(int id) {
  16. this.id = id;
  17. }
  18. public String getName() {
  19. return name;
  20. }
  21. public void setName(String name) {
  22. this.name = name;
  23. }
  24. public IdCard getIdCard() {
  25. return idCard;
  26. }
  27. public void setIdCard(IdCard idCard) {
  28. this.idCard = idCard;
  29. }
  30. }
  1. public class IdCard {
  2. private int id;
  3. private Date usefullLife;
  4. private Person person;
  5. public IdCard() {
  6. }
  7. public IdCard(int id, Date usefullLife, Person person) {
  8. this.id = id;
  9. this.usefullLife = usefullLife;
  10. this.person = person;
  11. }
  12. public int getId() {
  13. return id;
  14. }
  15. public void setId(int id) {
  16. this.id = id;
  17. }
  18. public Date getUsefullLife() {
  19. return usefullLife;
  20. }
  21. public void setUsefullLife(Date usefullLife) {
  22. this.usefullLife = usefullLife;
  23. }
  24. public Person getPerson() {
  25. return person;
  26. }
  27. public void setPerson(Person person) {
  28. this.person = person;
  29. }
  30. }

one-to-one方式一:

IdCard.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. Mapping file autogenerated by MyEclipse Persistence Tools
  6. -->
  7. <hibernate-mapping>
  8. <class name="com.huawei.domain.IdCard" table="id_card">
  9. <id name="id" type="java.lang.Integer">
  10. <column name="id" />
  11. <generator class="foreign" >
  12. <param name="property">person</param>
  13. </generator>
  14. </id>
  15. <property name="usefullLife" type="java.util.Date">
  16. <column name="usefull_life"/>
  17. </property>
  18. <one-to-one name="person" constrained="true"></one-to-one>
  19. </class>
  20. </hibernate-mapping>

Person.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. Mapping file autogenerated by MyEclipse Persistence Tools
  6. -->
  7. <hibernate-mapping>
  8. <class name="com.huawei.domain.Person">
  9. <id name="id" type="java.lang.Integer">
  10. <column name="id" />
  11. <generator class="native" />
  12. </id>
  13. <property name="name" type="java.lang.String">
  14. <column name="name" length="5" not-null="false" />
  15. </property>
  16. <one-to-one name="idCard"></one-to-one>
  17. </class>
  18. </hibernate-mapping>

one-to-one方式二:

IdCard.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. Mapping file autogenerated by MyEclipse Persistence Tools
  6. -->
  7. <hibernate-mapping>
  8. <class name="com.huawei.domain.IdCard" table="id_card">
  9. <id name="id" type="java.lang.Integer">
  10. <!--
  11. <column name="id" />
  12. <generator class="foreign" >
  13. <param name="property">person</param>
  14. </generator>
  15. -->
  16. <column name="id" />
  17. <generator class="native" />
  18. </id>
  19. <property name="usefullLife" type="java.util.Date">
  20. <column name="usefull_life"/>
  21. </property>
  22. <!--         <one-to-one name="person" constrained="true"></one-to-one> -->
  23. <many-to-one name="person" column="person_id" unique="true"></many-to-one>
  24. </class>
  25. </hibernate-mapping>

Person.hbm.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!--
  5. Mapping file autogenerated by MyEclipse Persistence Tools
  6. -->
  7. <hibernate-mapping>
  8. <class name="com.huawei.domain.Person">
  9. <id name="id" type="java.lang.Integer">
  10. <column name="id" />
  11. <generator class="native" />
  12. </id>
  13. <property name="name" type="java.lang.String">
  14. <column name="name" length="5" not-null="false" />
  15. </property>
  16. <one-to-one name="idCard" property-ref="person"></one-to-one>
  17. </class>
  18. </hibernate-mapping>

测试:

  1. Session s = null;
  2. try{
  3. s = HibernateSessionFactory.getSession();
  4. //          Person person = (Person)s.get(Person.class, id);
  5. //          System.out.println(person.getIdCard().getUsefullLife());
  6. IdCard idCard = (IdCard)s.get(IdCard.class, id);
  7. System.out.println(idCard.getPerson().getName());
  8. } catch (HibernateException e) {
  9. e.printStackTrace();
  10. }

hibernate 一对一 one to one的两种配置方式的更多相关文章

  1. Hibernate中双向多对多的两种配置方式

    Hibernate中双向多对多的两种配置方式 1.建立多对多双向关联关系 package cn.happy.entitys; import java.util.HashSet; import java ...

  2. IOC容器在web容器中初始化——(一)两种配置方式

    参考文章http://blog.csdn.net/liuganggao/article/details/44083817,http://blog.csdn.net/u013185616/article ...

  3. 第四节:框架前期准备篇之进程外Session的两种配置方式

    一. 基本介绍 1. 背景:Asp.Net默认的Session机制是进程内,存储在服务器端内存中,有这么几个缺点: ①:既然存在内存中,空间有限,不能存储大数据量信息,数据量多的话Session会被挤 ...

  4. springboot之jackson的两种配置方式

    springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format ...

  5. 学习JavaWeb aop两种配置方式

    aop aop:面向切面编程,它可以解决重复代码. aop有两种方式: 一..xml方式 1.在springmvc-servlet.xml中配置aop,应用bean文件: <!--aop配置-- ...

  6. (一)spring aop的两种配置方式。

    sring aop的方式有两种:(1)xml文件配置方式(2)注解的方式实现,我们可以先通过一个demo认识spring aop的实现,然后再对其进行详细的解释. 一.基于注解的springAop配置 ...

  7. eureka集群的两种配置方式:配置文件方式与DNS方式

    eureka client获取serviceUrls(eureka server地址)列表的过程: 1. 根据use-dns-for-fetching-service-urls属性判断是从dns还是从 ...

  8. mybatis一对一联表查询的两种常见方式

    1.一条语句执行查询(代码如下图)  注释:class表(c别名),teacher表(t别名)teacher_id为class表的字段t_id为teacher表的字段,因为两者有主键关联的原因,c_i ...

  9. spring aop两种配置方式

    基于注解的Spring AOP开发 简单案例快速入门 定义目标类接口和实现类 /** * Created by zejian on 2017/2/19.*/ //接口类 public interfac ...

随机推荐

  1. oracle 查看被锁的表和解锁

    相关视图 SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ;S ...

  2. Concurrency and Race Conditions

    1.当多个线程访问共享硬件或软件资源的任何时候,由于线程之间可能产生对资源的不一致观察,所以必须显式管理对资源的访问. 2.内核中的并发管理设施: (1). 信号量: P操作将信号量的值减 1 ,判断 ...

  3. proxychains 安装

    一.安装下载源码: git clone https://github.com/rofl0r/proxychains-ng 编译和安装: cd proxychains-ng ./configure -- ...

  4. Nexus 安装 使用说明

    1 . 私服简介 私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件.有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库:否则,私服请求外部 ...

  5. phpStudy1——PHP文件获取html提交的参数

    示例代码: submit.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  6. 根据二进制和十进制转换规则转换成游戏[xyytit]

    摘要: 二進位是由十進位轉換而成,它的數字都由1.0組成的.我們研究發現由十進位轉換而成的二進位的數字可以不只局限在於1~127,它的數可以更加深加廣,並且可以利用二進位的規則轉換成遊戲.我們利用2n ...

  7. 2-Qt关闭子窗口时执行特定代码

    https://blog.csdn.net/naibozhuan3744/article/details/82689434 本文主要总结在关闭qt的QWidget子窗口瞬间,执行特定代码.由于主窗口关 ...

  8. Redis的复制特性

    对于有扩展平台以适应更高负载经验的工程师和管理员来说,复制(replication)是不可或缺的.复制可以让其他服务器拥有一个不断更新的数据副本,从而使得拥有数据副本的服务器可以用于处理客户端发送的读 ...

  9. Java数据结构和算法(四)赫夫曼树

    Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...

  10. Jfinal框架是什么框架?适用于什么项目呢?

    Jfinal框架是什么框架?适用于什么项目呢? jfinal 基于spring MVC研发的框架,操作简单.节省代码,适用于所有web项目.适合中小型项目开发.10分钟写出一个页面的增删改查.目前所在 ...