8.Hibernate双向基于外键的1-1映射
来源:互联网 发布:mac flac mp3 批量转 编辑:程序博客网 时间:2024/05/17 07:34
作为persion的映射表,使用one-to-one标签同时同时指定关联属性
<?xml version="1.0" encoding="GBK"?><!-- 指定Hibernate的DTD信息 --><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="org.crazyit.app.domain"><!-- 映射Person持久化类 --><class name="Person" table="person_inf"><!-- 映射标识属性id --><id name="id" column="person_id"><!-- 定义主键生成器策略 --><generator class="identity" /></id><!-- 用于映射普通属性 --><property name="name" type="string" /><property name="age" type="int" /><!-- one-to-one元素映射关联属性,外键列在对方的表内 property-ref指定引用关联类的属性。 即:在address属性所属的Address类内, 必须有person属性的setter和getter方法 --><one-to-one name="address" property-ref="person" /></class></hibernate-mapping>address的映射表使用many-to-one name="person" 指定unique="true"(即实体为1) column="person_id"外键
<?xml version="1.0" encoding="GBK"?><!-- 指定Hibernate的DTD信息 --><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="org.crazyit.app.domain"><!-- Address持久化类 --><class name="Address" table="address_inf"><!-- 映射标识属性addressId --><id name="addressId" column="address_id"><!-- 指定主键生成器策略 --><generator class="identity" /></id><!-- 映射普通属性addressdetail --><property name="addressDetail" /><!-- 使用many-to-one映射1-1关联实体 unique="true"确定为1-1 --><many-to-one name="person" unique="true" column="person_id"not-null="true" /></class></hibernate-mapping>
public class Person {// 标识属性private Integer id;// Person的name属性private String name;// 保留Person的age属性private int age;// 记录关联实体的address属性private Address address;// id属性的setter和getter方法public void setId(Integer id) {this.id = id;}public Integer getId() {return this.id;}// name属性的setter和getter方法public void setName(String name) {this.name = name;}public String getName() {return this.name;}// age属性的setter和getter方法public void setAge(int age) {this.age = age;}public int getAge() {return this.age;}// address属性的setter和getter方法public void setAddress(Address address) {this.address = address;}public Address getAddress() {return this.address;}}
public class Address{//标识属性private int addressId;//地址详细信息private String addressDetail;//记录关联实体的person属性private Person person;//无参数的构造器public Address(){}//初始化全部属性的构造器public Address(String addressDetail){this.addressDetail = addressDetail;}//addressId属性的setter和getter方法public void setAddressId(int addressId){this.addressId = addressId;}public int getAddressId(){return this.addressId;}//addressDetail属性的setter和getter方法public void setAddressDetail(String addressDetail){this.addressDetail = addressDetail;}public String getAddressDetail(){return this.addressDetail;}//person属性的setter和getter方法public void setPerson(Person person){this.person = person;}public Person getPerson(){return this.person;}
private void testPerson() {Session session = HibernateUtil.currentSession();Transaction tx = session.beginTransaction();// 创建一个Person对象Person p = new Person();// 设置Person的Name为Yeeku字符串p.setName("Yeeku");p.setAge(29);// 持久化Person对象(对应于插入主表记录)session.save(p);// 创建一个瞬态的Address对象Address a = new Address("广州天河");// 先设置Person和Address之间的关联关系a.setPerson(p);// 再持久化Address对象(对应于插入从表记录)session.persist(a);tx.commit();HibernateUtil.closeSession();}
0 0
- 8.Hibernate双向基于外键的1-1映射
- hibernate基于外键的双向1-1关系映射
- hibernate基于外键的一对一映射--单向和双向
- 9.Hibernate双向基于主键的1-1映射
- 10.Hibernate双向基于链表的1-1映射
- 12.Hibernate双向基于链表的1-N映射
- Hibernate 基于外键一对一映射(单双向)
- Hibernate基于外键和主键的双向一对一关系映射
- hibernate的一对一映射-外键映射-双向-mysql数据库
- Hibernate-映射关系- 基于外键映射的1<->1映射
- Hibernate-映射关系- 基于主键映射的1<->1映射
- hibernate的一对一主键双向映射关系和外键双向映射关系(一)
- hibernate 1对1映射(基于外键映射的 1-1
- hibernate基于主键的一对一映射(单双向)
- Hibernate的关联映射(7)-双向1-1关联
- 13.Hibernate双向无链表的1-N映射
- Hibernate的关联映射(5)-双向1-N关联
- Hibernate一对一外键关联映射(双向)
- git 记住用户名密码
- C语言(八)
- 23种设计模式-16-组合模式
- 第十六周项目四—为动态数组扩容
- tomcat启动产生多个java进程并有defunct现象
- 8.Hibernate双向基于外键的1-1映射
- mysql使用命令整理
- Chrome多线程模型的优缺点
- 编写程序,采用辗转相除法求解两个正整数的最大公约数
- 杂碎_MyEclipse2014 破解图文详细教程
- 黑马程序员--C语言--01-指针数组、指向数组的指针、指向指针的指针
- 第16周项目2-用指针玩转字符串-(1.1)字符串连接
- 如何随机选择excel单元格中的数据
- 16-黑豆