hibernate的意思是什么?
我理解hibernate@JoinTable注释,但我不理解InverseJointable列。它是用来干什么的 e、 ghibernate的意思是什么?,hibernate,Hibernate,我理解hibernate@JoinTable注释,但我不理解InverseJointable列。它是用来干什么的 e、 g @ManyToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL) @JoinTable(name=“stock\u category”,catalog=“mkyongdb”,JointColumns={ @JoinColumn(name=“STOCK_ID”,nullable=false,updateable=false)}
@ManyToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@JoinTable(name=“stock\u category”,catalog=“mkyongdb”,JointColumns={
@JoinColumn(name=“STOCK_ID”,nullable=false,updateable=false)},
inverseJoinColumns={@JoinColumn(name=“CATEGORY\u ID”,
nullable=false,updateable=false)})
公共集合getCategories(){
返回此项。类别;
}
从javadocs中,它的意思是:
(可选)引用不拥有关联的实体的主表的联接表的外键列
用外行的话说,类别
的列将用作当前实体和类别
之间的可联接
关系的一部分
如果未在
@JoinTable
注释上指定joinColumns
和inverseJoinColumns
,持久性提供程序假定主键到主键的联接关系,并且默认情况下仍在表中存储两个相关实体的等效ID列。InverseJoinColumn用于自定义关联类引用变量名称表中的列名。该列充当外键。为什么我们实际上需要定义该反向连接列
?这会有什么不同吗?你能给出一个例子并解释为什么我们会明确要求这个注释吗?中间的表无论如何都将具有这两个表的主键。
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "stock_category", catalog = "mkyongdb", joinColumns = {
@JoinColumn(name = "STOCK_ID", nullable = false, updatable = false) },
inverseJoinColumns = { @JoinColumn(name = "CATEGORY_ID",
nullable = false, updatable = false) })
public Set<Category> getCategories() {
return this.categories;
}