hibernate一对一外键单向关联
来源:互联网 发布:elle淘宝代购真的吗 编辑:程序博客网 时间:2024/05/17 04:40
与上篇相对应,还是client和address是一对一的外键关联关系,address表中的主键ID与client表中的外键CLIENTADDRESSID构成一对一外键关联关系.
表结构和sql语句就不说了,看下外键双向关联和外键单向关联的不同点和注意项:
双向关联:
可以根据client得到address,也可以根据address得到client,双向关联时需要在client.hbm.xml中配置
<many-to-one unique=”true” name=”client_address” column=”CLIENTADRESSID” cascade=”all”></many-to-one>;
在address.hbm.xml中配置
<one-to-one name=”address_client” property-ref=”client_address”></one-to-one>,property-ref的值应与<many-to-one>中的name属性的值对应,说明client对象是与address对象建立的关联关系.
单向关联:
只可以根据client得到address,单向关联时只需在client.hbm.xml中配置
<many-to-one unique=”true” name=”client_address” column=”CLIENTADDRESSID” cascade=”all”>
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property><property name="connection.url">jdbc:mysql://localhost:3306/onetoone</property><property name="connection.username">root</property><property name="connection.password">123456</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><!-- 显示sql语句 --> <property name="hibernate.show_sql">true </property> <property name="format_sql">true</property><!-- 让输出的sql语句格式化 --> <mapping resource="com/hust/javabeans/Address.hbm.xml" /><mapping resource="com/hust/javabeans/Client.hbm.xml" /></session-factory></hibernate-configuration>
Client.hbm.xml
<?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> <class name="com.hust.javabeans.Client" table="client"> <id name="id" column="ID" type="integer"> <generator class="identity"></generator> </id> <property name="clientname" column="CLIENTNAME" type="string"></property> <property name="phone" column="PHONE" type="string"></property> <property name="email" column="EMAIL" type="string"></property> <!-- 映射Client和Address的一对一外键关联,唯一多对一,实际上时一对一关系,这里的name是Client的属性,column是外键--> <many-to-one name="client_address" class="com.hust.javabeans.Address" column="CLIENTADDRESSID" cascade="all" unique="true"></many-to-one> </class></hibernate-mapping>
Address.hbm.xml
<?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> <class name="com.hust.javabeans.Address" table="address"> <id column="ID" name="id" type="integer"> <generator class="identity"/> </id> <property name="province" column="PROVINCE" type="string"/> <property name="city" column="CITY" type="string"/> <property name="street" column="STREET" type="string"/> <property name="zipcode" column="ZIPCODE" type="string"/> <!-- 映射Client和Address的一对一外键关联,name是Address的属性,property-ref是Client中的属性client_address,many-to-one的name属性的值,表明建立了从address对象到company对象的关联 --> <!-- <one-to-one name="address_client" class="com.hust.javabeans.Client" property-ref="client_address"/> --> </class></hibernate-mapping>
0 0
- Hibernate 一对一外键单向关联
- Hibernate 一对一外键单向关联
- Hibernate 一对一外键单向关联
- Hibernate 一对一外键单向关联
- Hibernate 一对一外键单向关联
- hibernate一对一外键单向关联实例
- Hibernate 一对一外键单向关联
- Hibernate一对一外键关联映射(单向)
- Hibernate 一对一外键单向关联
- Hibernate 一对一外键单向关联
- hibernate一对一外键单向关联
- Hibernate 一对一外键单向关联
- 八、Hibernate一对一唯一外键关联(单向关联)
- Hibernate关联之一对一外键单向关联
- Hibernate单向“一对一”关联
- Hibernate单向一对一关联
- Hibernate 单向一对一关联
- hibernate一对一唯一外键关联单向映射
- 了解IO Visor的技术基石BPF与eBPF (by quqi99)
- FatMouse' Trade
- handler机制的原理
- 浅谈排序
- 使用cargo自动化部署maven项目
- hibernate一对一外键单向关联
- iOS开发-移动互联网的时代
- Python 私有变量、私有方法、类变量与实例变量
- safari浏览器兼容日期
- jasperreport 添加header
- Windows下字符编码方式和相关类型使用
- 随机验证码的生成(手机或者邮箱验证码)
- UITableCell 的删除崩溃原因
- 正则表达式(一)