使用transactionTemplate自行控制事务,但是在回滚的时候却是部分回滚了,而有的却没回滚实在搞不明白
transactionTemplate.execute(new TransactionCallback(){
    public Object doInTransaction(TransactionStatus ts) {
// TODO Auto-generated method stub
try{
addStuSbj(stu, sbj, 1, "chosen");
stu.hasChosen++;//其他都回滚了,就这个不回滚,实在搞不懂
sbj.current_num++;
stuDAO.merge(stu);
sbjDAO.merge(sbj);

if(sbj.current_num == sbj.limit_num){
         subjects.remove(sbj);
}
if(sbj.current_num > sbj.limit_num){
     throw new RuntimeException();//这里抛出异常导致回滚
}
}catch(Exception e){
     ts.setRollbackOnly();//回滚
}
return null;
}
}