Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UseGeneratedKeys不适用于parameterType=“map”_Java_Mybatis - Fatal编程技术网

Java UseGeneratedKeys不适用于parameterType=“map”

Java UseGeneratedKeys不适用于parameterType=“map”,java,mybatis,Java,Mybatis,使用MyBatis 3.2.7 情景1: POJO: 道: DAO.xml <update id="updateProject" parameterType="map" useGeneratedKeys="true" keyProperty="project.id" keyColumn="project_id"> <update id="updatePlan" parameterType="Plan" useGeneratedKeys="true" keyProperty="

使用MyBatis 3.2.7

情景1:

POJO:

道:

DAO.xml

<update id="updateProject" parameterType="map" useGeneratedKeys="true" keyProperty="project.id" keyColumn="project_id">
<update id="updatePlan" parameterType="Plan" useGeneratedKeys="true" keyProperty="id" keyColumn="plan_id">
道:

DAO.xml

<update id="updateProject" parameterType="map" useGeneratedKeys="true" keyProperty="project.id" keyColumn="project_id">
<update id="updatePlan" parameterType="Plan" useGeneratedKeys="true" keyProperty="id" keyColumn="plan_id">
问题:

由于在场景2中它工作得非常好,而在场景1中它不工作,所以我假设在使用map作为parameterType时不支持使用生成的键。这是真的吗?

解决方案:

如果使用了多个参数,看起来它确实不受支持。
public void update(@Param("plan") Plan plan);
<update id="updatePlan" parameterType="Plan" useGeneratedKeys="true" keyProperty="id" keyColumn="plan_id">
<update id="updateProject" parameterType="map">
    <selectKey keyProperty="project.id" resultType="Long" order="BEFORE">
        select nvl(#{project.id}, project_id_seq.nextval) from dual
    </selectKey>
    ...
</update>