ssm往数据库增加数据时,手动加了1/0让代码报错,但还是加进去一条数据 没回滚是为什么?
@Service
public class UserServiceImpl implements UserService {
@Autowired
private SysUserMapper mapper;
@Override
public boolean saveUsers(List<SysUser> users) {
int flag = 0;
for (SysUser user : users) {
flag+=mapper.insertSelective(user);
int a = 1/0;
}
return flag==users.size()?true:false;
}
}
@Test
public void Test(){
List<SysUser> users = new ArrayList<SysUser>();
for (int i = 14; i < 16; i++) {
SysUser user = new SysUser();
user.setLoginAccount("admin"+i);
user.setLoginPwd("admin"+i);
user.setRealName("管理"+i);
user.setFlag(i%2);
users.add(user);
}
boolean status = service.saveUsers(users);
Assert.assertTrue(status);
}
<tx:advice id="tx" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="select*" read-only="true"/>
<tx:method name="query*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="p1" expression="execution(* com.ak.service..*.*.*(..))"/>
<aop:advisor advice-ref="tx" pointcut-ref="p1"></aop:advisor>
</aop:config>