欢迎来到天天文库
浏览记录
ID:42629657
大小:161.80 KB
页数:7页
时间:2019-09-19
《一对一唯一外键关联(单向、双向)映射(含测试分析)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一对一唯一外键关联映射(单向) 一对唯一外键关联映射是采用多对一关联映射方法来解决一对一的问题,它就是多对一的一个特例。它是基于这样一种思想:在映射多的一端时采用标签,并且用属性unique=true来限定它是唯一的,这样就实现了多的一端的多重性为一。但是,它仍保留多対一的痕迹(比如关系模型中增加一个外键字段)。3.实体类: IdCard.javapublic class IdCard{ private Integerid; private Stringcard
2、No; //一系列的getter.setter方法 @Override public StringtoString(){ //TODOAuto-generatedmethodstub return "Idcard:" +cardNo; } } Person.javapublic class Person{ private Integerid; private Stringname; private IdCardidCard; //一系列的s
3、etter.getter方法 @Override public StringtoString(){ //TODOAuto-generatedmethodstub return "Person:" +name; } }4.映射文件: IdCard.hbm.xml 4、" length="4"> Person.hbm.xml 5、" length="4"> 6、 unique="true"> 6.测试方法: public static void main(String[]args){ Sessionsession=HibernateUtils.getSession(); Transactiont=session.beginTransaction(); try { /**
4、" length="4">
5、" length="4">
6、 unique="true">
7、 *测试插入操作 */ /* IdCardidCard=newIdCard(); idCard.setCardNo("1234567890"); Personperson=newPerson(); person.setIdCard(idCard); //不能成功保存,会报错org.hibernate.TransientObjectException:objectreferencesanunsave
8、dtransientinstance-savethetransientinstancebeforeflushing:com.sxt.hibernate.one2one.entity.IdCard //因为idCard是transient状态 //要在中加上cascade="save-update",或者是在session.save(person)之前session.save(idCard) session.save(person);*
此文档下载收益归作者所有