java之hibernate之基于外键的一对一单向关联映射

这篇讲解基于外键的一对一单向关联映射

1.考察如下信息,人和身份证之间是一个一对一的关系。表的设计

注意:基于外键的一对一关联的表结构和多对一的表结构是一致的,但是,外键是唯一的。

2.类的结构

Person.java

public class Person implements Serializable{private int id;private String name;private IdCard idCard;public Person() {}public Person(String name) {super();this.name = name;}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;}
}

IdCard.java

public class IdCard implements Serializable{private String id;private String address;public IdCard() {// TODO Auto-generated constructor stub
    }public IdCard(String id, String address) {super();this.id = id;this.address = address;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}}

3.映射文件信息:

IdCard.hbm.xml

<hibernate-mapping package="cn.sxt.pojo"><class name="IdCard" table="t_idCard"><id name="id"><generator class="assigned"></generator></id><property name="address"/></class>
</hibernate-mapping>

Person.hbm.xml

<hibernate-mapping package="cn.sxt.pojo"><class name="Person" table="t_person"><id name="id"><generator class="native"></generator></id><property name="name"/><!-- 基于外键的一对一和多对一的表结构是一样的,所以映射文件也一样,要保证外键是唯一的 --><many-to-one name="idCard" column="idCardId" unique="true"></many-to-one></class>
</hibernate-mapping>

4.测试

public class HibernateTest {/*** 生成数据库表的工具方法* */@Testpublic void testCreateDB(){Configuration cfg = new Configuration().configure();SchemaExport se = new SchemaExport(cfg);//第一个参数  是否打印sql脚本//第二个参数 是否将脚本导出到数据库中执行se.create(true, true);}/*** 初始化表数据*/@Testpublic void testInit(){Session session = null;Transaction tx = null;try {session = HibernateUtil.getSession();tx = session.beginTransaction();IdCard card1 = new IdCard("110086", "湖北武当");IdCard card2 = new IdCard("110087", "光明顶");Person p1 = new Person("张三疯");p1.setIdCard(card1);Person p2 = new Person("殷素素");p2.setIdCard(card2);session.save(card1);session.save(card2);session.save(p1);session.save(p2);tx.commit();} catch (Exception e) {if(tx!=null)tx.rollback();}finally {HibernateUtil.close();}}/***/@Testpublic void testGetData(){Session session = HibernateUtil.getSession();Person p1 = (Person)session.get(Person.class, 1);System.out.println(p1.getName()+"----"+p1.getIdCard().getId()+"----"+p1.getIdCard().getAddress());HibernateUtil.close();}
}

 

转载于:https://www.cnblogs.com/Vincent-yuan/p/11203267.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

访问被拒绝:“microsoft.web.ui.webcontrols”的解决办法

错误&#xff1a; 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误信息: 访问被拒绝&#xff1a;“microsoft.web.ui.webcontrols”。 &#xff0d;&#xff0d;&#xff0d;&#xff0…

intellij idea 热部署 spring jvm 版

2019独角兽企业重金招聘Python工程师标准>>> 配置 intellij idea tomcat 加入下面这个参数&#xff0c; 对应jar 到 mvnrepo 下载 。 -javaagent:D:\work\springloaded-1.2.3.RELEASE.jar -noverify 转载于:https://my.oschina.net/u/556878/blog/416563

大数据——Hadoop学习笔记(配置)

具体代码可以参考&#xff1a; https://github.com/Ostrich5yw/java4BigData

面试题——20190717

redis持久化有哪些策略&#xff1f; 文章&#xff1a;redis持久化的几种方式 redis提供两种方式进行持久化&#xff0c;一种是RDB持久化&#xff08;原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化&#xff09;&#xff0c;另外一种是AOF&#xff08;append on…

以C#编写的Socket服务器的Android手机聊天室Demo

内容摘要 1.程序架构 2.通信协议 3.服务器源代码 4.客户端源代码 5.运行效果 一、程序架构 在开发一个聊天室程序时&#xff0c;我们可以使用Socket、Remoting、WCF这些具有双向通信的协议或框架。而现在&#xff0c;我正要实现一个C#语言作为服务器端、Android作为客户端的聊天…

[导入]泊

又梦见战乱。 过年可能又回不了家&#xff0c;昨天打电话给家里&#xff0c;母亲哭了。 出来了才觉得我为什么活着&#xff0c;每天平躺的地方够大生活就已经满足了&#xff0c;但是需要什么来填补我空洞的灵魂&#xff1f;文章来源:http://dotnet.mblogger.cn/zeusvenus/posts…

LeetCode—275. H 指数 II

275. H 指数 II 题目描述&#xff1a; 给你一个整数数组 citations &#xff0c;其中 citations[i] 表示研究者的第 i 篇论文被引用的次数&#xff0c;citations 已经按照 升序排列 。计算并返回该研究者的 h 指数。 h 指数的定义&#xff1a;h 代表“高引用次数”&#xff0…

maven环境快速搭建

2019独角兽企业重金招聘Python工程师标准>>> 最近&#xff0c;开发中要用到maven&#xff0c;所以对maven进行了简单的学习。因为有个maven高手在身边&#xff0c;所以&#xff0c;很快就上手了&#xff0c;我这里算是自我总结吧。关于maven是什么东东&#xff0c;请…

20190718考试70分记

又考试了&#xff0c;这次题明显感觉难多了&#xff0c;骗了不少分&#xff0c;竟然rk13 第一题一看不可做&#xff0c;然后看第二题 第二题一开始也没有思路&#xff0c;然后我就看上了k<1的情况&#xff0c; 显然k0时只要求所有数的gcd即可&#xff0c; k1的话枚举每一个树…

[散记]今天

前几天还下了一场不小的雪&#xff0c;冷的很。昨天出门还穿了厚毛衣和棉外套&#xff0c;起风的时候还觉得凉飕飕的。今天就热的很了&#xff0c;天气预报说最高温度有16度。出门换了薄毛衣和薄外套&#xff0c;走了一段路&#xff0c;竟是闷热的很&#xff0c;索性将外套脱掉…

随笔03

Application -- HOOKUP -- Interpreters 转载于:https://www.cnblogs.com/soulnearby/archive/2011/07/08/2100734.html

Struts2 文件上传,下载,删除

本文介绍了&#xff1a; 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用FileUtil上传 6.使用IOUtil上传 7.使用IOUtil上传 8.使用数组上传多个文件 9.使用List上传多个文件 ----1.基于表单的文件…

LeetCode—44. 通配符匹配(困难)

44. 通配符匹配&#xff08;困难&#xff09; 题目描述&#xff1a; 给定一个字符串 (s) 和一个字符模式 &#xff0c;实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。 ‘?’ 可以匹配任何单个字符。 ‘*’ 可以匹配任意字符串&#xff08;包括空字符串&#xff09;。 两个字…

怎样和客户一起搞定需求

项目刚刚开始的时期&#xff0c;项目经理做的主要事情是搜集客户需求&#xff0c;这是一个项目经理非常头疼的阶段&#xff0c;合作的磨合刚刚开始&#xff0c;需求问题上的失误又会导致无穷的后患。三种客户类型&#xff1a; 1 的确很专业。能提供基本可用的文档&#xff0c;能…

字符串后面去0、补0

去掉0 str.replaceAll("0$", "") 补0至n位 String.format("%-ns",swjgPrefix ).replace( ,0) 前面的话不要“-”号 0可以换成任意字符转载于:https://www.cnblogs.com/IceBlueBrother/p/11208433.html

疑问:C#中的委托

我这几天一直在看C#的书&#xff0c;知道了委托是怎么回事&#xff0c;但我一直不能理解这个委托是用在什么地方&#xff0c;有什么好处&#xff0c;请高手指点。 转载于:https://www.cnblogs.com/yjlft/archive/2006/04/03/365443.html

火狐、IE浏览器实现Extjs的grid表格的复制、粘贴

2019独角兽企业重金招聘Python工程师标准>>> 从后台获取参数&#xff0c;一次填入ext&#xff1a;grid网状表格&#xff0c;发现表格内的数据不能复制粘贴&#xff0c;只能read...&#xff0c;火狐和IE 11都不能复制。 火狐解决方案 局部定义表格复制、粘贴的样式&a…

LeetCode—279. 完全平方数

279. 完全平方数 题目描述&#xff1a; 给你一个整数 n &#xff0c;返回和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4、9 和 16 都是完全…

Form表单的主要Content-Type

在Spa单页面横行的时代&#xff0c;前后端交互基本都是Json交互&#xff08;也有通过FormData的&#xff0c;比如上传文件&#xff09;。而在之前的Jsp&#xff0c;Php前后不分家的时候&#xff0c;前后交互好大一部分都是通过Form表单来完成的。From标签个属性叫 enctype&…

百慕大三角和中国娱乐界

百慕大三角神秘莫测玄机重重哥伦布在他的航海日志中记载曾经见到"拥有钢铁幕墙的巨型船只"而这些船只却来自当代的美国航运巨子一架波音747在该海域坠毁躲在洗手间的6岁小女孩是唯一的幸存者但是在两个小时之后被营救出来时她已经变成了白发苍苍的老奶奶有多少船只和…