在Java Persistence API (JPA)中,mappedBy
属性用于指定一个双向关联关系中的非拥有方,它通常用在@OneToMany, @OneToOne, @ManyToOne和@ManyToMany注解中。
假设我们有两个实体类:Department和Employee,每个部门有多个员工,而每个员工只能在一个部门工作,在这种情况下,我们可以使用mappedBy
来设置这种双向的一对多关联。
以下是相关的代码示例:
@Entity public class Department { @Id private Long id; private String name; @OneToMany(mappedBy = "department") private List<Employee> employees = new ArrayList<>(); // getters and setters } @Entity public class Employee { @Id private Long id; private String name; @ManyToOne @JoinColumn(name = "department_id") private Department department; // getters and setters }
在这个例子中,我们在Department
实体类的employees
属性上使用了@OneToMany(mappedBy = "department")
,这表示Department
是关系的非拥有方,Employee
是关系的拥有方。mappedBy
的值department
是指Employee
实体类中的department
属性,这是关系的拥有方。
注意,在拥有方(在这个例子中是Employee
)中,我们必须使用@JoinColumn
或@JoinTable
来指定如何将实体映射到数据库表中,在非拥有方(在这个例子中是Department
),我们不能使用这些注解,因为关系是由拥有方管理的。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/825072.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复