在同一个事物中获取插入记录的自增主键失败

插入条项目和方案,一条项目对应多个方案,需要在事物控制中把项目信息插入到项目表获取到项目的自增主键,然后和方案信息一起插入到方案表,在未添加事物注解时候插入项目获取插入的项目的主键是没有问题的,添加事物之后获取的就是null了,最后在return时候把项目的信息整个返回发现只有在结束了才能拿到项目的主键,需要解决这个问题,
插入时候获取自增主键

 <insert id="insertPlanProject" parameterType="com.wdkj.entity.PlanDesigAll">
<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="prj_oid">
    select currval('ifz_ghqq_pln_prj_oid_seq') as prj_oid
</selectKey>
        INSERT INTO <include refid="table_project"/>
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="prj_pid != null"> pid, </if>
            <if test="prj_name != null"> pname, </if>
            <if test="prj_c_date != null"> c_date, </if>
        </trim>
        VALUES
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="prj_pid != null"> #{prj_pid}, </if>
            <if test="prj_name != null"> #{prj_name}, </if>
            <if test="prj_c_date != null"> #{prj_c_date}, </if>
        </trim>
    </insert>

最后解决的办法是在config中把 的BATCH改为SIMPLE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值