我想很多人都曾经被mappedBy这个属性头大过,网上的说的十个九个抄我是没看明白什么意思。
现在我来说说我的理解
@Entity
@Table
public class Department implements java.io.Serializable {
// Fields
@Id
private Long depid;
private String depname;
@OneToMany(mappedBy="department")
private Set<Employee> employees = new HashSet<Employee>();
public class Employee implements java.io.Serializable {
// Fields
@Id
private Long eeid;
private String eename;
@Column(name="dep_id",insertable=false,updatable=false)
private Long depId;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="dep_id")
private Department department;
mappedby用于指定在双向关联中,两个实体对象,哪一个是能被关联处理的
而 mappedby指向的对象就是被关联处理的对象。
如果 mappedby指向 Employee 那么修改一个 Department 部门对象要修改多个Employee那个很麻烦;所以我们一般都指定 mappedby Department 也就是当修改Employee 关联修改 Department 这样的代价是最小的
@OneToMany(mappedBy="department")
private Set<Employee> employees = new HashSet<Employee>();
意思 employees中的每一个 Employee mappedBy department
(该字段是多端Employee中的 private Department department; )
中文理解就是 对employees对象中的属性department将发生映射
@OneToMany mappedBy
猜你喜欢
转载自mayufan2014.iteye.com/blog/2210533
今日推荐
周排行