其他分享
首页 > 其他分享> > 在同一个事物中获取插入记录的自增主键失败

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

作者:互联网

插入条项目和方案,一条项目对应多个方案,需要在事物控制中把项目信息插入到项目表获取到项目的自增主键,然后和方案信息一起插入到方案表,在未添加事物注解时候插入项目获取插入的项目的主键是没有问题的,添加事物之后获取的就是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

标签:自增,项目,获取,prj,插入,主键
来源: https://blog.csdn.net/wangshan_1121/article/details/96718979