jap設置兩個表中oneToMany/ManyToOne

多對一的關係我們通常在多的一方來維護。現在使用tbUser和tbRole來完成例子,一個人只能有一個角色。
在user表中我們使用ManyToOne註解來完成關係映射,JoinColumn來設置關聯的外鍵在數據庫中的名稱。

@Entity
@Table(name = "tb_user")
@SequenceGenerator(name = "tb_user_sq",sequenceName = "tb_user_sqe")
public class TbUser extends BaseEntity{


    /**
     * 用戶名
     */
    private String userName;
    /**
     * 登錄名
     */
    private String loginName;
    /**
     * 登陸密碼
     */
    private String passWord;
    /**
     * 手機號
     */
    private String telPhone;
    /**
     * 一個用戶只有一個角色
     */
    private TbRole tbRole;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public String getTelPhone() {
        return telPhone;
    }

    public void setTelPhone(String telPhone) {
        this.telPhone = telPhone;
    }

    @Id
    @Override
    @GeneratedValue(generator = "tb_user_sq",strategy = GenerationType.SEQUENCE)
    public Long getId() {
        return this.id;
    }
    @ManyToOne(cascade = CascadeType.REMOVE)
    @JoinColumn(name = "tb_role_id")
    public TbRole getTbRole() {
        return tbRole;
    }

    public void setTbRole(TbRole tbRole) {
        this.tbRole = tbRole;
    }
}

在role中我們如果想直接使用這個關係的話,同樣添加一個外鍵字段,在外鍵字段上添加註解OneToMany(mappedBy = “tbRole”),mappdBy對應的是當前實體在外鍵實體中的字段名。

@Entity
@Table(name = "tb_role")
@SequenceGenerator(name = "tb_role_sq",sequenceName = "tb_role_sqe")
public class TbRole extends BaseEntity{


    @Override
    @Id
    @GeneratedValue(generator = "tb_role_sq",strategy = GenerationType.SEQUENCE)
    public Long getId() {
        return this.id;
    }

    private String roleName;

    private List<TbUser> tbUserList=new ArrayList<>();

    public String getRoleName() {
        return roleName;
    }

    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }
    @OneToMany(mappedBy = "tbRole")
    public List<TbUser> getTbUserList() {
        return tbUserList;
    }

    public void setTbUserList(List<TbUser> tbUserList) {
        this.tbUserList = tbUserList;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章