@OneToMany mappedBy

我想很多人都曾经被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将发生映射

猜你喜欢

转载自mayufan2014.iteye.com/blog/2210533