在一对多或多对多的映射配置中,inverse、cascade、order-by属性配置
- inverse属性
inverses:作用是指定双向多对一的映射中,由哪一端来进行维护默认值为inverse="false",表示不放弃维护 ,inverse="true"表示放弃维护,一般在一的一方设置为inverse="true",来减少程序对数据的访问
<set name="students" table="students" inverse="true" >
<key>
<!-- 此处值为 students表中的外键 -->
<column name="tec_id" />
</key>
<one-to-many class="Student" />
</set> - cascade属性
我们以学生和老为例,一个老师对应多个学生,多个学生对应一个老师的多对一关系,如果我们在一的老师这边设置了cascade="delete",那么在删降老师的记录时,会先将与之相关联的学生全部删除。
<set name="students" table="students" cascade="delete" >
<key>
<!-- 此处值为 students表中的外键 -->
<column name="tec_id" />
</key>
<one-to-many class="Student" />
</set>
可参考
Hibernate框架基础——cascade属性_李阿昀的博客-CSDN博客_cascade属性 - order-by
order-by:设置查询出来的数据的排序,实质就是在sql语句后面加上order by语句。如:
<set name="students" table="students" inverse="true" lazy="false" order-by="id ASC">
<key>
<!-- 此处值为 students表中的外键 -->
<column name="tec_id" />
</key>
<one-to-many class="Student" />
</set>
如上所示id为该Student类的id属性,也可以换在这个类的其它属性,ASC为升序 ,如果设成DESC则为降序