一、先简单说一下inverse的作用
我们在映射实体bean的关联关系时,像一对多的双向关联,为了提高应用的性能我们通常会在“一”这方把属性inverse设置true("inverse=true"),让“多”这方来维护关系,从而来减少SQL语句。
不过在使用inverse 属性时也需要注意,在“多”这方一定要设置自己属于哪个的;像 student 和 book 的关系,一定要设置book.setStudent(student),告诉自己是属于哪个学生的,要不然就不知道书是哪位学生的了(表中studentId 将为null)。
还需注意一点,inverse 属性不能在有序的集合中使用。
二、在使用annotaition的情况时
若我们在使用annotaition情况下,想达到"inverse=true"的作用时,可以通过“mappedBy”属性来声明,即在“一”这方加上“mappedBy=xxxx”,像:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "xxxx")