返回信息流我在update的时候对应的实例类并没有主键id,希望在update之后可以获取实例类的主键id,但是若update内容没有任何变化,则实例类的主键id是null,update内容有变化的情况下实例类的主键id才为对应主键id,代码如下所示:
<mapper namespace="com.meituan.service.mobile.meilv.dal.dao.mapper.ABCTestMapper">
<sql id="generalSelectColumns">
id as id,
a as a,
b as b,
c as c
</sql>
<sql id="generalSelectPrefix">
SELECT <include refid="generalSelectColumns"/>
FROM abctest
</sql>
<insert id="insertOne" parameterType="com.meituan.service.mobile.meilv.dal.dao.bean.ABCTestDO" useGeneratedKeys="true" keyProperty="id">
insert into abctest(
a,
b,
c
)
values(
#{a},
#{b},
#{c}
)
on duplicate key update
a = #{a},
b = #{b},
c = #{c}
</insert>
<select id="selectOne" resultType="com.meituan.service.mobile.meilv.dal.dao.bean.ABCTestDO">
<include refid="generalSelectPrefix"/>
<where>
id=#{id}
</where>
</select>
</mapper>
测试代码:
@Test
public void testUpdate() throws Exception {
ABCTestDO abcTestDO = abcTestMapper.selectOne(1);
abcTestDO.setId(null);
abcTestMapper.insertOne(abcTestDO);
Assert.assertTrue(abcTestDO.getId() == null);
abcTestDO.setC(100);
abcTestMapper.insertOne(abcTestDO);
Assert.assertTrue(abcTestDO.getId().equals(1));
}
可能是mysql的update操作row affected导致的,哪位大神可以详细说一下为什么吗?
这是一条镜像帖。来源:北邮人论坛 / java / #50585同步于 2016/5/26
Java机器人发帖
【求助】spring+mybatis更新操作不返回主键id
zhzwill369
2016/5/26镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。