当前使用版本(必填,否则不予处理)

3.4.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

使用@Update注解,无法获取sqlserver merge into之后的id

重现步骤(如果有就写完整)

sql如下:

    @Update("<script>" +
        "MERGE INTO Student_Info t " +
        "USING ( " +
        "VALUES ( " +
        "    #{info.otherkey}, " +
        "    #{key1}, #{key2} " +
        "    )) " +
        "AS s ( " +
        "    otherkey, " +
        "    key1, key2" +
        "    ) " +
        "ON ( t.key1= s.key1AND t.key2= s.key2)  " +
        "WHEN matched THEN " +
        "UPDATE  " +
        "    SET " +
        "    t.otherkey = s.otherkey, </if>" + 
        "    t.key1= s.key1" +
        "WHEN NOT matched THEN " +
        "    INSERT ( " +
        "    otherkey , " +
        "    key1, key2" +
        "    ) " +
        "    VALUES " +
        "    ( " +
        "     s.otherkey" +
        "    s.key1, s.key2" +
        "    );" +
        "</script>")
    @Options(useGeneratedKeys = true, keyProperty = "info.id")
    int mergeInfo(@Param("key1") String key1, @Param("key2") String key2,
        @Param("info") Student info);

报错信息

没有报错,就是执行这个sql之后,Student info的id无法自动填充

Comment From: miemieYaho

你只用mybatis能填充吗?

Comment From: IneverStop

@miemieYaho 如果是insert语句的话可以填充

Comment From: miemieYaho

我指的你上面那个sql

Comment From: IneverStop

我指的你上面那个sql

我不知道我上面这个sql能不能填充,所以想问一下是mybatis不支持mergeInto语句填充id,还是我需要做什么额外的配置

Comment From: miemieYaho

mp只负责注入sql,其他的都是mybatis的事