在我的应用程序中,我使用JPA 2.0和Hibernate作为持久性提供程序。我在两个实体之间存在一对多的关系(使用@JoinColumn
而不是@JoinTable
)。我想知道如何在JPA注释中指定inverse=true
(在hbm.xml
中指定)以反转关系所有者。
谢谢。
答案 0 :(得分:43)
我找到了答案。 @OneToMany注释的mappedBy属性在xml文件中的行为与inverse = true相同。
答案 1 :(得分:3)
属性mappedBy
表示此方面的实体是关系的倒数,而所有者位于另一个实体中。其他实体将具有@JoinColumn
注释和@ManyToOne
关系。因此我认为inverse = true与@ManyToOne
注释相同。
此外,inverse =“true”表示这是处理关系的关系所有者。
答案 2 :(得分:0)
@Entity
@Table(name = "branch")
public class Branch implements Serializable {
@Id
@Column(name = "branch_no")
@GeneratedValue(strategy = GenerationType.AUTO)
protected int branchNo;
@Column(name = "branch_name")
protected String branchName;
@OneToMany(mappedBy = "branch") // this association is mapped by branch attribute of Staff, so ignore this association
protected Set<Staff> staffSet;
// setters and getters
}
@Entity
@Table(name = "staff")
public class Staff implements Serializable {
@Id
@Column(name = "staff_no")
@GeneratedValue(strategy = GenerationType.AUTO)
protected int staffNo;
@Column(name = "full_name")
protected String fullName;
@ManyToOne
@JoinColumn(name = "branch_no", nullable = true)
protected Branch branch;
// setters and getters
}