时间:2014-11-27 来源:

Hibernate-----一对一共享主键关联映射(映射文件方式)

共享主键关联映射:让两个对象具有相同的主键值,以表明他们之间的一对一对应的关系;数据库表不会有额外的字段来维护他们之间的关系,承接网页制作仅通过表的主键来关联

<?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"> <hibernate-mapping package="org.app.model"> <class name="IdCard" table="t_idCard"> <id name="id"> <generator class="increment"/> </id> <property name="cardNo"/> <!-- 这里不影响存储(即设置先设置Person而不保存,html静态页面制作只影响加载(维护端还是Person) --> <one-to-one name="person"/> </class> </hibernate-mapping>

One(IdCard:非维护端)

 

 

 

<?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"> <hibernate-mapping package="org.app.model"> <class name="IdCard" table="t_idCard"> <id name="id"> <generator class="increment"/> </id> <property name="cardNo"/> </class> </hibernate-mapping>

一、单向关联映射:

One(Person:维护端)

二、双向关联映射

<?xml version="1.0"encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="org.app.model"> <!-- 1-1:Person(维护端)【多】 to IdCard【一】) --> <class name="Person" table="t_person"> <idname="id"> <!-- 采用foreign生成策略符合w3c标准,foreign会取得关联对象的标识 --> <generatorclass="foreign"> <!-- property值是关联的对象 --> <paramname="property">idCard</param> </generator> </id> <propertyname="name" /> <!-- one-to-one指示hibernate如何加载其关联对象,手机html制作默认根据主键加载;也就是拿到关系字段值网页外包接活,根据另外一端的主键来加载关联对象 --> <!-- 维护关系:constrained=true:表示当前主键还是一个外键;指向另外一端的主键,网页外包接活也就是会生成外键约束语句(唯一) 【在‘多’端添加外键(‘多’端主键)指向‘一’的一端】 --> <one-to-onename="idCard" constrained="true"/> </class> </hibernate-mapping> To

public void testOneToOne(){ Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); // IdCard idCard = new IdCard(); idCard.setCardNo("111111"); // Person person = new Person(); person.setName("name"); person.setIdCard(idCard); // 一对一关联映射的特性决定了保存person时会先保存关联对象(idCard)(默认了级联属性);故保存person时可不用显示保存IdCard // 维护端要最后保存 session.save(person); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { HibernateUtils.closeSession(session); } }

<?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"> <hibernate-mapping package="org.app.model"> <class name="Person" table="t_person"> <id name="id"> <generator class="foreign"> <param name="property">idCard</param> </generator> </id> <property name="name"/> <one-to-one name="idCard" constrained="true"></one-to-one> </class> </hibernate-mapping> To

One(维护端:Person)

 

One(非维护端:IdCard)

 

点击次数:4457
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日工具【系统运维】2015年05月12日电子商务系统的设计与实现(九):后端管理系统功能细化 【移动开发】2015年01月04日leetcode_84_LargestRectangleinHistogram 【系统运维】2015年02月11日Python学习笔记2014年01月29日Virtual应用在析构函数和构造函数调用中 【移动开发】2014年12月29日乐观锁与悲观锁 【编程语言】2014年12月29日只是一篇软文,让我的PR从0升到32014年01月28日Word的书籍折页是什么2014年01月28日SharePointWorkflowTroubleShooting(一)Task被锁住或者卡住 【移动开发】2015年01月19日2010年南非世界杯引爆黑客攻击热潮2014年01月28日Codeforces507D(Round#287(div.2))D.TheMathsLecture【数位DP】 【互联网】2015年01月26日渗透jsp网站遇到防火墙后突破方法【编程语言】2015年02月13日更好地讲过的就的见到过还记得捷易通【Web前端】2014年11月10日【APUE】进程控制(中)2017年01月11日Android移植到C#-XobotOS ,,2016年06月23日Maven入门【系统运维】2014年11月13日SqlServer批处理(BatchRequestssec)过高追踪处理【互联网】2015年07月08日robotframework自动化系列:删除操作流程以及总结2017年11月22日linux配置java环境变量转过几个,这个最详细和靠谱【Web前端】2015年05月20日SoftwareArchitectureHasEthicalConsequences 【数据库】2015年08月15日关于GC 【数据库】2015年03月09日用了CSDN的markdown编辑器吐槽下~~ 【编程语言】2015年07月14日【Elasticsearch】控制相关度(四)-忽略TFIDF 【综合】2014年12月29日Ubuntu编码问题 【编程语言】2014年11月06日操作系统网关的设置不会影响到11.2RAC 【综合】2015年05月05日各种网站认证与备案介绍2014年01月28日struts2实现文件上传下载(下载支持中文文件名)代码 【编程语言】2015年04月08日OracleConnecttoIdleInstance解决方法2014年01月30日MATLAB图像处理_感悟和总结 【编程语言】2015年01月19日matlab字符串处理 【综合】2015年01月07日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)