我有一个使用 myBatis 进行持久化的项目。下面的方法“A”工作得很好,直到我添加了一些外键并将我的表从 myISAM 转换为 innoDB。转换后,方法“A”将静默失败,日志中甚至没有警告。转换后,只有方法“B”才能成功插入。两种方法都将正确的 sql 写入日志,但只有“B”有效。
谁能告诉我为什么我现在需要提交,但以前不需要提交?
//doesnt work, but worked previously
public void A(Role role) {
SqlSession session = sqlSessionFactory.openSession();
try {
RoleMapper mapper = session.getMapper(RoleMapper.class);
mapper.updateByPrimaryKeySelective(role);
}catch(Exception e){
logger.error(e);
} finally {
session.close();
}
return;
}
//works correctly, but why?
public void B(Role role) {
SqlSession session = sqlSessionFactory.openSession();
try {
RoleMapper mapper = session.getMapper(RoleMapper.class);
mapper.updateByPrimaryKeySelective(role);
session.commit();
}catch(Exception e){
logger.error(e);
} finally {
session.close();
}
return;
}