有人能解释一下在xml映射文件中使用inverse的作用吗?我正在阅读教程,但无法理解它在映射文件中的用途?
谢谢
有人能解释一下在xml映射文件中使用inverse的作用吗?我正在阅读教程,但无法理解它在映射文件中的用途?
谢谢
在多对多关系中,您需要遵循连接的方向。
让我们来看一个例子:
学生(IdStudent,StudentName)
课程(IdCourse,CourseName)
一个学生可以选修一门或多门课程,因此我们将在学生和课程之间建立一个联合表,命名为StudentCourse(IdStudent,IdCourse)。
反向属性需要放置在课程一侧,因为它将指示Hibernate(它对StudentCourse表不太了解)正确构建其查询。
如果您在学生一侧将反向属性设置为true,则Hibernate将认为联合表是CourseStudent(IdCourse,IdStudent)!!
对于一对多关系,它的行为也是相同的。
inverse告诉Hibernate如何管理外键,以避免引用实体的问题。如果您定义了双向关系,则可以在对象的两侧进行导航。inverse标志使您能够正确设置关系(以避免约束违规)。如果您不定义inverse标志,则Hibernate不知道如何创建更新插入语句。将集合的一侧设置为镜像告诉Hibernate它是另一侧的镜像。这对于Hibernate将Java转换为SQL代码始终是必需的。
规则很简单: