工作中遇到的小问题,也是自己没注意的地方,记录一下:
1,关于@Transactional注解,事务注解要在@Service类下才能用,不能在@Controller类上,在try cacth语句的方法上用事务注解会没用,事务注解会失效,如果一定要在try cacth上用的话:
@Transactional(rollbackFor = Exception.class)
public boolean readDocx(File file, UserVo user, String fileName) {
try {
///业务处理//
} catch (Exception e) {
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return false;
} finally {
}
return true;
}
1.1 方法中的方法加事务,子方法的事务会失效
public void father(){
try{
aa();
} catch {
}
}
//这样事务会失效
@Transactional(rollbackFor = Exception.class)
public void aa (){
try{
//业务处理
} catch {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
2,mybatis的xml文件里写SQL
resultType这里,如果是Integer或者Long,可以直接写Integer或者Long,不需要写成resultType="java.long.Integer",我这里写成java.long.Integer反而会报错,但是我在另外项目上写又不会,暂时不知道原因。
是java.lang.Integer,是我写错了,感谢指出,那就是不会报错的,两种都可以写
3,第三点是没注意,很容易错的东西,铭记啊
在xml里写SQL,like要写$符,不能写#
and a.content LIKE '%${keyWord}%' OR a.title LIKE '%${keyWord}%'