目录
一、一对一关联关系
需求:一个用户(Users)对应一个角色(Roles),一个角色对应一个用户
用户:一方
角色:一方
我们使用注解@OneToOne表示一对一关系,注解@JoinColumn用来创建外键列(如果我们开启了正向工程),其name值就是外键列的列名。
在注解@OneToOne的括号里,我们可以写mappedBy,这是用来告诉Roles的Users属性要存放哪里的Users.
此外,因为两个实体类有着关联关系,所以需要使用级联操作 cascade = CascadeType.PERSIST(级联操作知识点请看最后)
Users.java
package com.zxw.pojo;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name="t_users")
public class Users implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)//strategy=Gene rationType.IDENTITY 自增长
@Column(name="userid") private Integer userid;
@Column(name="username") private String username;
@Column(name="userage") private Integer userage;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "roles_id") //维护一个外键
private Roles roles;
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getUserage() {
return userage;
}
public void setUserage(Integer userage) {
this.userage = userage;
}
public Roles getRoles() {
return roles;
}
public void setRoles(Roles roles) {
this.roles = roles;
}
@Override
public String toString() {
return "Users{" +
"userid=" + userid +
", username='" + username + '\'' +
", userage=" + userage +
'}';
}
}
Roles.java
package com.zxw.pojo;
import javax.persistence.*;
@Entity
@Table(name = "t_roles")
public class Roles {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "roleid")
private Integer roleid;
@Column(name = "rolename")
private String rolename;
@OneToOne(mappedBy = "roles")
private Users users;
public Integer getRoleid() {
return roleid;
}
public void setRoleid(Integer roleid) {
this.roleid = roleid;
}
public String getRolename() {
return rolename;
}
public void setRolename(String rolename) {
this.rolename = rolename;
}
public Users getUsers() {
return users;
}
public void setUsers(Users users) {
this.users = users;
}
@Override
public String toString() {
return "Roles{" +
"roleid

本文详细介绍了Spring Data JPA中的四种关联关系查询:一对一、一对多、多对多,以及级联操作。通过注解@OneToOne、@OneToMany、@ManyToMany和@JoinColumn设置外键,实现不同关联关系。同时,文章还讨论了级联操作的五种状态,包括PERSIST、MERGE、REMOVE、REFRESH和DETACH。
最低0.47元/天 解锁文章
979

被折叠的 条评论
为什么被折叠?



