Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hibernate的意思是什么?_Hibernate - Fatal编程技术网

hibernate的意思是什么?

hibernate的意思是什么?,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)}

我理解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)},
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;
}