一对一关联
根据各种教科书的例子,一对一关联可通过两种方式实现,通过主键关联和通过外键关联,这里我只介绍一下通过外键关联。
在做一个例子,我在上面的程序中有一个User表,这里我在做一个IDCARD表,表里的内容设置了user的一些具体信息,他们是一对一的关系。
IDCARD表的SQL:
CREATE TABLE `idcard` (
`crd_id` int(11) NOT NULL auto_increment,
`crd_no` char(11) NOT NULL default 0,
`crd_eml` char(20) default NULL,
`usr_id` int(11)NOT NULL default 0,
PRIMARY KEY (`crd_id`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8;
IdCard类为:
public class IdCard {
private int id;
private String cardNo;
private String email;
private UserInfo user;
这里的一对一关联关系可以看成是一对多的一个特殊形式,可能也能猜到,就是在多的一端设置其外键唯一就可以了,即在节点<many-to-one>里面价格属性,unique="true"
IdCard映射文件为:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="xiaojin.hibernate.entity.Message" table="MESSAGE">
<id name="msgId" type="int" column="msg_id">
<generator class="native"/>
</id>
<property name="ttl" column="msg_ttl" type="string" not-null="true"/>
<property name="desc" column="msg_desc" type="string" not-null="true"/>
<property name="date" column="msg_date" type="string" />
<many-to-one name="user" class="xiaojin.hibernate.entity.UserInfo" column="usr_id" cascade="none"></many-to-one>
</class>
</hibernate-mapping>
在一的一段的映射文件里也就是User里面再上一个<one-to-one>节点:
<one-to-one name="idCard" class="xiaojin.hibernate.entity.IdCard" cascade="all" property-ref="user" />
property-ref="user" 指定关联对象的属性名。
测试方法:
public static void saveUserAndIdCard(){
UserInfo user= new UserInfo();
user.setName("xiaojin1");
user.setPassword("xiaojin");
IdCard idCard = new IdCard();
idCard.setCardNo("12121212");
idCard.setEmail("email");
idCard.setUser(user);
user.setIdCard(idCard);
save(user);
System.out.println("Save over ");
}
分享到:
相关推荐
hibernate关联关系
Hibernate 关联关系映射分类
详细讲解hibernate的关联关系,以及用实例讲解,非常详细
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的关联关系,...
Hibernate关联关系练习【全】
Hibernate关联关系映射 单向关联 │ ├─ 一对一外键单向关联 │ ├─ 一对一主键单向关联 │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ...
Hibernate关联关系.docHibernate关联关系.doc
映射一对多关联关系 以Customer和Order为例: 一对多: 每个Customer可以有一个或者多个Order,因此Customer中应该有一个集合类型的属性,来引用所有关联的Order对象。 多对一。全实例讲解
Hibernate4中映射关系图解。
Hibernate关联关系总结 一对多 多对一 多对多
hibernate里关联关系映射,各种关系解析,帮助大家搞清楚hibernate的关系映射
大致总结了一下Hibernate关联关系。提供相关的一些例子进行测试。
hibernate关联关系简单项目,也可以只运行Java文件不用JSP页面,运用MySQL
Hibernate关联关系映射.CHM Hibernate文档相关
针对hibernate中关于对象间的关联关系的配置
讲诉了关联的创建和使用 整理成了一份txt的文档 整个创建到使用的步骤都写在里面了
hibernate关联关系多对一实例
Hibernate关联关系配置,一对一,一对多,多对多,联合主键等的配置
Hibernate关联关系映射实例速查,帮助初学者学习。
hibernate ORM的实例,包括一对一,一对多,多对一,多对多的各种实例。 还有一些HQL语句的写法