目录
一、一对一关联关系
需求:一个用户(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;