hibernate主键相同的一对一关系

本文介绍如何在Hibernate中实现一对一双主键关联,通过实体类和配置文件的设置,展示了一个客户和其地址实体类之间的一对一关系,省去了外键约束,详细步骤包括创建java工程、导入相关类库、建立实体类、配置映射关系、编写测试代码和运行测试。
摘要由CSDN通过智能技术生成

由于两个实体类是一对一的关系,因此可以设置两个实体类使用相同的主键。相对的,具有相同注解的实体被视为一对一的关系,这样两个表就省略了外键关联。


demo实例

客户地址管理,一个客户对应一个地址,实体间使用相同的主键。


1、建立java工程


2、导入hibernate和MySql相关类库。

  详见之前的博客hibernate单边一对多关系中的配置。


3、建立实体类

Customer为客户的实体类,Address为客户的地址实体类;

两个实体类之间是一对一的属性,两者之间使用相同的主键而没有使用外键约束。

配置时使用OneToOne指定一对一关系,使用@PrimaryKeyJoinColumn指定两个实体类之间使用相同的主键。


客户的实体类Customer.java代码如下:

package com.arvinfei.hibernate.bean;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity
@Table(name = "tb_customer")
public class Customer {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer id;

	private String name;

	@OneToOne
	@PrimaryKeyJoinColumn
	private Address address;

	public Address getAddress() {
		return addr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值