Hibernate一对一主键关联:
1,单向主键关联:person--------》idCard
Person的主键id作为一个外键参照idCard的主键id。键值都是一样的。
让两个实体的主键id保持相同,这样避免多余字段被创建。
Person.hbm.xml:
<hibernate-mapping>
<class
name="com.bjsxt.hibernate.Person" table="t_person">
<id
name="id">
//person的主键来源于idCard,共享idCard的主键。
<generator class="foreign">
<param
name="property">idCard</param>
</generator>
</id>
<property
name="name"/>
//指示hibernate怎么加载他的关联对象idCard,默认根据主键加载
//
constrained="true" 表示当前主键存在一个约束,Person的主键id作为一个外键参照idCard的主键id,如果去掉就不会生出外键关联约束
<one-to-one name="idCard"
constrained="true"/>
</class>
</hibernate-mapping>
IdCard.hbm.xml:
<hibernate-mapping>
<class
name="com.bjsxt.hibernate.IdCard" table="t_idcard">
<id
name="id">
<generator
class="native"/>
</id>
<property
name="cardNo"/>
</class>
</hibernate-mapping>
session.beginTransaction();
IdCard idCard = new
IdCard();
idCard.setCardNo("88888888888888");
Person person = new
Person();
person.setName("菜10");
person.setIdCard(idCard);
//没有保存idCard
//不会出现TransientObjectException异常
//因为一对一主键关联映射中,默认了cascade属性
//因为person的主键参考idCard的主键,必须先有idCard。
//只有一对一关联映射特殊
session.save(person);
session.getTransaction().commit();
2,双向主键关联:person 《--------》idCard
跟单向关联唯一不同的是:在另一端也加上one-to-one标签
<hibernate-mapping>
<class
name="com.bjsxt.hibernate.IdCard" table="t_idcard">
<id
name="id">
<generator
class="native"/>
</id>
<property
name="cardNo"/>
//指示hibernate如何加载person,默认根据主键加载
<one-to-one
name="person"/>
</class>
</hibernate-mapping>
- 大小: 22.3 KB
- 大小: 28.8 KB
分享到:
相关推荐
hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向
009 一对一 主键关联映射_单向 010 一对一 主键关联映射_双向 011 一对一 唯一外键关联映射_单向 012 一对一 唯一外键关联映射_双向 013 session_flush 014 一对多关联映射 单向 015 一对多关联映射 双向 016 多对多...
Hibernate学习要点:一对一主键关联双向
博文链接:https://shaqiang32.iteye.com/blog/201309
博文链接:https://llying.iteye.com/blog/220803
博文链接:https://llying.iteye.com/blog/220802
博文链接:https://shaqiang32.iteye.com/blog/201308
hibernate一对一主键关联映射(单向关联Person---->IdCard) 8 hibernate一对一主键关联映射(双向关联Person<---->IdCard) 9 hibernate一对一唯一外键关联映射(单向关联Person---->IdCard) 10 hibernate一对一...
hibernate 无主键表映射资源说明: 1. 简单Demo 2. Demo对应的sql语句 3. 对应博客文档
Hibernate应用例子one-to-one
这个是针对初学Hibernate一对多主键关联映射的源代码 ,希望对初学者有所帮助,开发环境是MyEclipse7.5和HIbernate3.2
包含《多对多双向关联映射》《多对一单向关联映射》《多对一双向关联映射》《一对多单向关联映射》等文档,并有图解及例子,非常适合新手学习,尤其是刚刚接触hibernate,对映射关系不清楚的。。。。
Hibernate 一对一主键单向关联 Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向关联 Hibernate 一对多连接表单向关联 Hibernate 多对一外键单向关联 Hibernate 多对一连接表单向关联 Hibernate 多对多单向...
hibernate主键一对一关联映射代码示例
如果在”一“一端维护一对多关联关系,hibernate会发出多余的udpate语句,所以我们一般在多的一端来维护关联关系。 加上inverse="true"这个属性,就可以强制在多的一端维护关系了。
NULL 博文链接:https://zhouxianglh.iteye.com/blog/569471
Hibernate双向一对一关联映射(注解版)
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1171227
NULL 博文链接:https://xiangtui.iteye.com/blog/680938
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...