Hibernate级联一对一
来源:互联网 发布:以色列 科技 知乎 编辑:程序博客网 时间:2024/05/29 18:40
一对一
1、基于主键一对一
案列person和idcard
pojo
package com.hsp.domain;public class Person implements java.io.Serializable { /** * */ private static final long serialVersionUID = 1L; private Integer id; private String name; private IdCard idCard; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public IdCard getIdCard() { return idCard; } public void setIdCard(IdCard idCard) { this.idCard = idCard; }}
package com.hsp.domain;import java.util.Date;public class IdCard implements java.io.Serializable { /** * */ private static final long serialVersionUID = 1L; private Integer id; private Date validateDte; private Person person; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Date getValidateDte() { return validateDte; } public void setValidateDte(Date validateDte) { this.validateDte = validateDte; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; }}
hbm配置文件
<?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 package="com.hsp.domain"><class name="Person" table="person"><id name="id" type="java.lang.Integer"><!-- 这里我们手动分配id --><generator class="assigned"/></id><property name="name" type="java.lang.String"><column name="name" length="128"/></property><!-- 这里配置person和idcard属性是一对一的关系 --><one-to-one name="idCard"/></class></hibernate-mapping>
<?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 package="com.hsp.domain"><class name="IdCard" table="idCard"><!-- 因为我们这里讲的是基于主键的one-to-one, 所以我们使用外键策略 --><!-- 这里值,是指定更哪个属性one-to-one --><id name="id" type="java.lang.Integer"><generator class="foreign"><param name="property">person</param></generator></id><property name="validateDte" type="java.util.Date"><column name="validateDte"/></property><!-- 这里配置IdCard和person属性是一对一的关系 没有constraned true将不会生成外键约束]--><one-to-one name="person" constrained="true"/></class></hibernate-mapping>
测试
package com.hsp.view;import java.util.Date;import java.util.HashSet;import java.util.Set;import org.hibernate.Hibernate;import org.hibernate.Session;import org.hibernate.Transaction;import com.hsp.domain.IdCard;import com.hsp.domain.Person;import com.hsp.util.HibernateUtil;public class TestMain { /** * @param args */ public static void main(String[] args) { //添加一组Person/idcard Session s=null; Transaction tx=null; try { //我们使用基础模板来讲解. s=HibernateUtil.getCurrentSession(); tx=s.beginTransaction(); Person p1=new Person(); p1.setId(1234); p1.setName("顺平"); IdCard idCard=new IdCard(); idCard.setId(1900); idCard.setValidateDte(new Date()); idCard.setPerson(p1);//表示idCard对象是属于p1这个对象. s.save(p1);//先保存人 s.save(idCard); tx.commit(); } catch (Exception e) { e.printStackTrace(); if(tx!=null){ tx.rollback(); } }finally{ if(s!=null && s.isOpen()){ s.close(); } } }}
2、基于外键一对一
<?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 package="com.hsp.domain"><class name="IdCard" table="idCard"><!-- 基于外键的one-to-one --><id name="id" type="java.lang.Integer"><generator class="assigned"/></id><property name="validateDte" type="java.util.Date"><column name="validateDte"/></property><!-- 这里配置IdCard和person属性是一对一的关系 --><many-to-one name="person" unique="true"/></class></hibernate-mapping>
0 0
- Hibernate级联一对一
- hibernate级联关系 -----一对一
- hibernate一对一映射关系级联删除
- hibernate 一对一(one to one)级联保存
- 心得5-hibernate级联之一对一单双向剖析
- Hibernate 一对一关联映射对象 级联增删改查示例
- mybatis级联,一对一
- hibernate 一对一
- Hibernate 一对一
- hibernate 一对一
- hibernate一对一
- hibernate一对一
- Hibernate学习之级联操作3——一对一关联关系
- hibernate一对一,一对多,多对一,多对多关系映射与级联
- Hibernate的映射关系与级联(一对一、一对多、多对多)
- hibernate级联
- hibernate级联
- hibernate级联
- node.js 和npm的安装及关系
- 商品类目管理
- POJ2823(单调队列初步)
- 157.n1-模仿微信下边点击不同的模块切换不同的界面
- 通俗易懂的 android framework
- Hibernate级联一对一
- xml中直接读取properties键值的解决方式
- nginx的指令开发时变量处理二
- 226. Invert Binary Tree -- 二叉树、递归、交换、栈
- pageController 页面跳转
- Maximum Subarray 解题报告
- 商品管理service和controller
- [Leetcode] Path Sum I,II,III
- 线性方程组 精确解 近似解 算法整理