多表关联时,新增数据要考虑的问题。
<insert id="addCustomer" parameterType="com.pd.gch.moudles.customer.model.Customer" useGeneratedKeys="true" keyProperty="id">
<!--<selectKey resultType="java.lang.Long" order="AFTER" keyProperty="id">-->
<!--SELECT LAST_INSERT_ID() AS id-->
<!--</selectKey>-->
Customer,Organization, RefOrganizationCustomer三张表。ID都是自增。(mysql数据库)
有多张表有关联关系时,新增关系表RefOrganizationCustomer的数据时,如何获取Customer和Organiaztion的ID!!!
mybatis的<insert>时,加上useGeneratedKeys属性,设为true,KeyProperty的值对应的是customer表对应的customer实体类的主键ID,假如名字叫A,
那么这里的值就为A。
执行完<insert>后,新增的customer表的ID就被赋值到它对应的customer实体类里了。这个时候customer.getId()获取到的就是新增后的ID值了。
上面的<selectKey>是Oracle的用法。