Hibernate注解一对一(单向)

本文详细介绍了如何在Hibernate中使用注解实现UserInfo类与Department类之间的一对一关联关系,包括具体步骤、配置和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

使用Hibernate注解:

    有两个表UserInfo和Department,在UserInfo中一个departmentId的字段作为外键,引用的是Department的主键,然后在UserInfo类中,需要有一个Department的对象保存用户部门的信息:

 

UserInfo类:

 

@Entity
public class UserInfo implements Serializable {
	private static final long serialVersionUID = 1L;
	
	@Id
	private Integer userId;
	private Integer roleId;
	private String username;
	private String password;
	private Integer sex;
	private Integer age;
	private Integer departmentId;
	private Integer positionId;
	private String introduction;
	private String interests;
	private String phone;
	private String mobilephone;
	private String email;
	private String address;
	
	@OneToOne
	@JoinColumn(name="departmentId", insertable = false, updatable = false)
	private Department department;
}

 

 

Department类:

 

@Entity
public class Department implements Serializable {
	private static final long serialVersionUID = 1L;
	
	@Id
	private Integer departmentId;
	private String departmentName;
	private String duty;
	private String phone;
}

 

 

@OneToOne:定义对另一个带有一对一多样性的实体的单值关联。一般不必显示指定的目标实体,因为通常可以根据引用的对象类型判断出来。

    -- cascade():串联到关联目标的操作。默认不串联

    -- fetch():关联应该延迟加载还是立即获取

    -- mappedBy():拥有关系字段。此元素仅在关联的反向端(非拥有端)指定

    -- optional():关联是否是可选的。如果设置为 false,则必须总是存在非 null 关系。

    -- targetEntiry():作为关联目标的实体类

JoinColumn:此类用于指定连接到实体关联的映射列。

    -- insertable():持久性提供者生成的 SQL INSERT 语句中是否包含该列。

    -- name():外键列的名称。它所在的表取决于上下文。如果连接针对 OneToOne 或 Many- ToOne 映射,则外键列位于源实体的表格中。如果连接针对 ManyToMany,则外键位于连接表格中。

    -- nullable():外键列是否可为 null。

    -- referencedColumnName():此外键列引用的列的名称。

    -- table():包含该列的表格的名称。

    -- unique():属性是否为唯一键。

 

    -- updatable():持久性提供者生成的 SQL UPDATE 语句中是否包含该列。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值