Hibernate之对象关系映射06一对一双向外键关联
来源:互联网 发布:snmp及编程实现 编辑:程序博客网 时间:2024/05/16 13:50
一对一外键关联是一对多外键关联的特例,只是在多的一方加了个唯一性约束。
Address11fk_sx.java
private int addressId;private String detailAddress;private Person11fk_sx person11fk_sx;
Person11fk_sx.java
private int personId;private String personName;private int age;private Address11fk_sx Address11fk_sx;
表结构:
-- 一对一双向外键关联 地址表的person_id外键关联 person_11fk_sx的person_idDROP TABLE IF EXISTS address_11fk_sx;create table address_11fk_sx ( address_id int(11) PRIMARY KEY auto_increment, detail_address varchar(255), person_id int(11)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- 一对一双向外键关联 人员表DROP TABLE IF EXISTS person_11fk_sx;create table person_11fk_sx ( person_id int(11) PRIMARY KEY auto_increment, person_name varchar(24) not null comment '姓名', age int(3)) ENGINE=InnoDB DEFAULT CHARSET=utf8;ALTER TABLE address_11fk_sx add constraint fk_11fk_address FOREIGN KEY(person_id) REFERENCES person_11fk_sx(person_id);
Address11fk_sx.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.ack.hibernateMapping.entity.Address11fk_sx" table="address_11fk_sx"><id name="addressId" column="address_id"><generator class="identity"/></id><property name="detailAddress" column="detail_address"/><many-to-one name="person11fk_sx" class="com.ack.hibernateMapping.entity.Person11fk_sx" column="person_id" fetch="select" unique="true" /> </class></hibernate-mapping>
Person11fk_sx.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.ack.hibernateMapping.entity.Person11fk_sx" table="person_11fk_sx"><id name="personId" column="person_id"><generator class="identity"/></id><property name="personName"> <column name="person_name" length="24" not-null="true"> <comment>姓名</comment> </column></property><property name="age"/><one-to-one name="address11fk_sx" cascade="all" /> </class></hibernate-mapping>
测试类:
public class Test_pa_11fk_sx {public static void main(String[] args) {Person11fk_sx p1 = new Person11fk_sx();p1.setPersonName("陈三");Address11fk_sx add1 = new Address11fk_sx();add1.setDetailAddress("丽水市莲都区");p1.setPersonId(1);p1.setAddress11fk_sx(add1);add1.setPerson11fk_sx(p1);Session session = HibernateUtil.getCurrentSession();session.beginTransaction();session.save(p1);session.getTransaction().commit();}}
sql语句:
insert into person_11pk_sx(person_name, age) values(?, ?)insert into address_11pk_sx(detail_address, address_id) values(?, ?)person生成记录的时候会生成一条address的记录。
0 0
- Hibernate之对象关系映射06一对一双向外键关联
- Hibernate关系映射(2)_一对一双向外键关联
- Hibernate关系映射级别注解(一对一双向外键关联、一对一双向外键联合主键)
- Hibernate关系映射(二)一对一双向外键关联@OneToOne Annotation方式
- hibernate一对一双向外键关联
- hibernate一对一双向外键关联_Annotation
- hibernate一对一双向外键关联_XML
- hibernate Annotation一对一双向外键关联
- hibernate一对一双向外键关联
- hibernate学习:一对一双向外键关联
- hibernate一对一双向外键关联
- Hibernate:一对一双向外键关联
- Hibernate学习笔记_07_一对一双向外键关联
- 037:hibernate一对一双向外键关联(Annotation)
- 037:hibernate一对一双向外键关联(xml)
- 【hibernate框架】一对一双向外键关联(XML实现)
- 【hibernate框架】一对一双向外键关联(Annotation实现)
- hibernate annotation 之 一对多、多对一双向外键关联
- UVALive 7512 November 11th
- 插件Vimium快捷键&linux vim总结
- Spring MVC的web.xml配置详解
- CString CStringA CStringW std::string std::wstring之间的区别与联系
- 复习iOS动画-layer-2
- Hibernate之对象关系映射06一对一双向外键关联
- devstack 安装openstack 注意点
- 01-PostgreSQL初识
- 如何解决系统软件不兼容问题
- spark编程指南
- DOM学习总结----Document类型
- linux网卡信息查询
- 23 序列流/内存输出流/打印流/Properties
- 我遇到的一些问题的解决答案,有关于操作系统中的