hibernate一对一关联

hibernate一对一主键关联

一对一主键关联指的是两个表通过主键形成的一对一映射。

数据表要求:A表的主键也是B表的主键同时B表的主键也是A表的外键

sql:

create table people(
id int primary key auto_increment,
name varchar(100) not null,
sex varchar(100) not null,
age int
)
create table idcard(
id int primary key,
idcard_code varchar(50) not null,
FOREIGN KEY(id) REFERENCES people(id)
)

单向主键关联映射:

package com.demo.hibernate.beans;

public class IDcard {
    private int id;
    private String idcard_code;
    private People people;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getIdcard_code() {
        return idcard_code;
    }
    public void setIdcard_code(String idcardCode) {
        idcard_code = idcardCode;
    }
    public People getPeople() {
        return people;
    }
    public void setPeople(People people) {
        this.people = people;
    }
    public IDcard(int id, String idcardCode, People people) {
        super();
        this.id = id;
        idcard_code = idcardCode;
        this.people = people;
    }
    public IDcard(){}

}
package com.demo.hibernate.beans;

public class People {
    private int id;
    private String name;
    private String sex;
    private int age;
    //private IDcard idcard;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    /*public IDcard getIdcard() {
        return idcard;
    }
    public void setIdcard(IDcard idcard) {
        this.idcard = idcard;
    }*/
    public People(int id, String name, String sex, int age) {
        super();
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
    public People(){}

}
<?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.demo.hibernate.beans.User" table="USER">
        <id name="id" type="int">
            <column name="id"></column><!-- 注意column要放在前面 -->
            <generator class="foreign">
                <param name="property">person</param>
            </generator>
        </id>

        <property name="idcard_code" type="string" column="IDCARD_CODE"/>

        <one-to-one name="prople" class="com.demo.hibernate.beans.People" cascade="all"></one-to-one>

    </class>
</hibernate-mapping>
时间: 2024-12-17 11:40:55

hibernate一对一关联的相关文章

006——hibernate一对一关联映射

一对一关联映射有两种方式:主键关联和外键关联 以夫妻为例(Husband----Wife) 单向关联实体类: Husband.java package com.java.hibernate; public class Husband { private int id; private String name; private Wife wife; public Wife getWife() { return wife; } public void setWife(Wife wife) { thi

04.Hibernate一对一关联

前言:本文主要介绍使用Hibernate映射一对一的关联关系的两种方式:使用外键映射.使用主键映射. 1.数据库表的一对一关联关系 本文根据客户信息表(tb_customer)和地址信息表(tb_address)来说明其一对一的关系,每一个客户都有一个家庭住址,而每一个地址都对应一个客户. (1)使用外键映射的数据库表说明 数据库表模型图如下: 数据库建表语句如下: CREATE TABLE tb_customer ( id bigint NOT NULL auto_increment COMM

Hibernate 一对一关联查询

一对一关联,可以分为两种.一种是基于外键的关联,另一种是基于主键的关联.如图 一.基于外键的方式 User.java 1 package com.proc.one2one; 2 3 public class User { 4 5 private Integer id; 6 private String name; 7 private IdCard card; 8 public User() { 9 } 10 public User(String name) { 11 this.name = na

Hibernate一对一关联映射配置

一.一对一关联 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射.下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方式分别完成以下持久化操作: (1)保存员工档案的同时分配给员工一个账号. (2)加载员工档案的同时加载账号信息. 按照外键映射: 关系图: ①创建实体类:Resume.Users 并封装属性 public class Resume { //档案id private Integer resid; //档案名称 private Str

hibernate.一对一关联

实体类关系 一对一 一对多 多对一 多对多 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射.下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方式分别完成以下持久化操作: (1)保存员工档案的同时分配给员工一个账号. (2)加载员工档案的同时加载账号信息. 1.按照外键映射 步骤一:创建实体类Users1和Resume1 Users1创建如下: public class Users1 { private Integer userid; priv

Hibernate 一对一关联映射

package com.entity; import javax.persistence.Entity; import javax.persistence.OneToOne; @Entity public class Husband extends BaseEntity { @OneToOne(mappedBy = "husband") private Wife wife; public Wife getWife() { return wife; } public void setWi

HIBERNATE一对一双向外键联合主键关联

HIBERNATE一对一双向外键联合主键关联: 一. 创建主键类:这个主键必须实现serializedable接口和重写其中的hashCode方法和equals方法:为主键类添加一个叫做@Embeddable的注解和为实体类添加一个叫做@EmbeddabledId的注解

Hibernate一对一映射关联

Hibernate提供了两种一对一映射关联关系的方式: 1)按照外键映射 2)按照主键映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这两种 映射方式分别完成以下持久化操作 (1)保存员工档案的同时分配给员工一个账号 (2)加载员工档案的同时加载账号信息 一:按照外键映射 HibernateUtil工具类(用于获取session和关闭session) package cn.util; import org.hibernate.Session

Hibernate中一对一关联映射/组件映射

Hibernate映射:一对一关联 1.按照外键映射 2.按照主键映射 组件映射 下面以员工账号表和员工档案表(员工账号和档案表之间是一对一的关系)为例,介绍这两种映射关系,并使用这两种 映射方式分别完成以下持久化操作 (1)保存员工档案的同时分配给员工一个账号 (2)加载员工档案的同时加载账号信息 一:按照外键映射