package com.yjj.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Table(name = "t_department")
@Entity
public class Department {
@Id
@GeneratedValue
private Integer id;
private String name;
//省略getter,setter
}
package com.yjj.entity;
import javax.persistence.*;
/**
* order当成manager
*/
@Table(name = "t_manager")
@Entity
public class Manager {
@Id
@GeneratedValue
private Integer id;
private String name;
@JoinColumn(name="departmentId")
@OneToOne
private Department department;
//省略getter,setter
}
看自动建的表
t_manager表
![](https://img.haomeiwen.com/i2465279/0927cc205b183311.png)
t_department表
![](https://img.haomeiwen.com/i2465279/774c887f38704ed1.png)
如果我把JoinColumn和OneToOne放在Department实体类,且维护一个Manager
@Table(name = "t_department")
@Entity
public class Department {
@Id
@GeneratedValue
private Integer id;
private String name;
@JoinColumn(name = "managerId")
@OneToOne
private Manager manager;
}
@Table(name = "t_manager")
@Entity
public class Manager {
@Id
@GeneratedValue
private Integer id;
private String name;
}
department表 多了一个managerId
![](https://img.haomeiwen.com/i2465279/493d0e37f7f39969.png)
双向的就双方各维护一个对方,会怎么样。。。
那就都有
![](https://img.haomeiwen.com/i2465279/601fe12ed4ddd167.png)
![](https://img.haomeiwen.com/i2465279/51636d00cc44bc8d.png)
那我加一个mappedBy呢
@Table(name = "t_manager")
@Entity
public class Manager {
@Id
@GeneratedValue
private Integer id;
private String name;
@OneToOne(mappedBy = "manager")
private Department department;
}
@Table(name = "t_department")
@Entity
public class Department {
@Id
@GeneratedValue
private Integer id;
private String name;
@JoinColumn(name = "managerId")
@OneToOne
private Manager manager;
}
![](https://img.haomeiwen.com/i2465279/985c96d609b07d5c.png)
![](https://img.haomeiwen.com/i2465279/56187ac3e9b360fb.png)
那如果我mappedBy写成department呢
会报错。
那就是说,mappedBy注解只能写自己咯
网友评论