基于外键的单向1-1关联

一个House关联一个Owner。

House类:

package com.ydoing.hibernate3;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name = "house_inf")
public class House {@Id@Column(name = "house_id")@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;private String name;@OneToOne(targetEntity = Owner.class, cascade = CascadeType.ALL)@JoinColumn(name = "owner_id", referencedColumnName = "owner_id", unique = true)private Owner owner;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Owner getOwner() {return owner;}public void setOwner(Owner owner) {this.owner = owner;}
}

Owner类:

package com.ydoing.hibernate3;import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;@Entity
@Table(name = "owner_inf")
public class Owner {@Id@Column(name = "Owner_id")@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}private String name;}

测试类:

package com.ydoing.hibernate3;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.BeforeClass;
import org.junit.Test;public class Main {private static Session session;@BeforeClasspublic static void init() {Configuration conf = new Configuration();conf.configure();ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();SessionFactory factory = conf.buildSessionFactory(serviceRegistry);session = factory.openSession();}@Testpublic void test() {Transaction tx = session.getTransaction();tx.begin();Owner owner = new Owner();owner.setName("Jack");House house = new House();house.setName("elegant");house.setOwner(owner);session.save(house);tx.commit();session.close();}
}

console输出:

Hibernate: insert intoowner_inf(name) values(?)
Hibernate: insert intohouse_inf(name, owner_id) values(?, ?) 

从输出可以看出owner_id作为house_inf的外键。

数据表:

Hibernate单向关联1-1相关推荐

  1. [置顶] Hibernate从入门到精通(十)多对多单向关联映射

    上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映射之前,首先看 ...

  2. Hibernate从入门到精通(十)多对多单向关联映射

    上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映射之前,首先看 ...

  3. Hibernate一对多单向关联和双向关联映射方法及其优缺点

    一对多关联映射和多对一关联映射实现的基本原理都是一样的,既是在多的一端加入一个外键指向一的一端外键,而主要的区别就是维护端不同. 它们的区别在于维护的关系不同: 一对多关联映射是指在加载一的一端数据的 ...

  4. hibernate一对一外键单向关联

    与上篇相对应,还是client和address是一对一的外键关联关系,address表中的主键ID与client表中的外键CLIENTADDRESSID构成一对一外键关联关系. 表结构和sql语句就不 ...

  5. 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)

    [SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例 ...

  6. Hibernate 一对一外键单向关联

    [align=center][size=medium]Hibernate 一对一外键单向关联[/size][/align] 基于外键关联的单向一对一关联和单向多对一关联几乎是一样的.唯一的不同就是单向 ...

  7. hibernate一对一主键关联映射(一)---单向关联

    1.新建工程项目hibernate_one2one_pk_1,添加hibernate所需Jar包和mysql驱动Jar包. 2.建立工具类HihernateUtils.java和ExportDB.ja ...

  8. Hibernate,关系映射的多对一单向关联、多对一双向关联、一对一主键关联、一对一外键关联、多对多关系关联...

    2018-11-10  22:27:02开始写 下图内容ORM.Hibernate介绍.hibername.cfg.xml结构: 下图内容hibernate映射文件结构介绍 下图内容hibernate ...

  9. Hibernate检索策略之5.4一对多单向关联检索策略——Hibernate4究竟怎么玩

    今天开始讲一对多单向关联. 转载于:https://www.cnblogs.com/geyifan/archive/2012/09/13/2682669.html

最新文章

  1. itest听力答案2020_itest大学英语3测试答案
  2. Silverlight Image Source URI 加反斜杠引和不加的区别
  3. Zookeeper 3.5启动时 8080端口被占用
  4. 如何让xtrabackup恢复速度提升20倍?
  5. 多路复用IO和异步IO
  6. mysql中count(*)和count(1)和count(column)区别
  7. 【JEECG技术文档】JEECG部门管理员操作手册
  8. GoogLeNet的心路历程(四)
  9. 教自己如何的口若悬河
  10. 基础 | 零散的MySql基础记不住,看这一篇就够啦
  11. 《天天数学》连载16:一月十六日
  12. nrf52832开发配置文件小记
  13. jsp mysql 乱码_jsp插入mysql数据库后乱码的解决办法
  14. android 哈哈镜,Carnival Mirror App(哈哈镜模拟器)
  15. c语言程序设计冯志红pdf,C语言程序设计:现代方法(第2版) 中文pdf扫描版[219MB]...
  16. 此windows副本不是正版_阳光单职业传奇正版-阳光单职业传奇正版官网版v2.0
  17. Android平台的音乐资源管理与播放
  18. day91~93-Paas云平台_docker容器
  19. Java项目:SSM实现的一个在线文具学习用品购买商城网站
  20. 2017CVPR NID-SLAM:基于归一化信息距离的鲁棒单目SLAM系统

热门文章

  1. 【三】傅里叶变换——1
  2. [NIO-2]通道和FileChannel
  3. 用 node.js 爬取煎蛋网照片(仅做学习之用)
  4. HTML-frameset框架集
  5. 爬虫究竟是合法的还是违法的
  6. CorelDRAWX4的VBA插件开发(二十三)INI初始化文件的读写和路径的保存
  7. evernote android版本,Evernote Android 版更新,给您超便捷笔记入口
  8. python工作环境_python2怎么创建虚拟工作环境
  9. Acrobat Reader DC for mac(pdf阅读工具)
  10. win7 双签名补丁,sha256证书补丁