数据库中存在两个关联表:书本信息表 bookInfo ; 书本类型表 bookType
现在要实现的业务是:
增加一本书,但是书本的类型可以是数据库里已经存在的,也可以是刚刚新添加的书本类型!
那么,首先我就可以在相应的两个实体映射文件中作如何配置!
实体:bookType中
......省略
<set name="bookinfos" inverse="false" cascade="merge">//这里设置
<!-- 关系映射时,需要指定由哪个列进行关联 -->
<key>
<!-- 这里的列是“多方”的外键 -->
<column name="bootypeid" not-null="true" />
</key>
<!-- 配置要关联的“多方”的对象 -->
<one-to-many class="com.hibernate.bean.Bookinfo" />
</set>
......省略
实体:bookInfo中
......省略
<many-to-one name="booktype" class="com.hibernate.bean.Booktype" fetch="select">
<column name="bootypeid" not-null="true" />
</many-to-one>
......省略
还有最重要的一点:
注意:
// 有一方关联多方时,需要同时进行双向关联
booktype.getBookinfos().add(bookinfo);
bookinfo.setBooktype(booktype);
然后通过执行:
bookTypeDao.updateBookType(bookType);
就可以实现该业务了!