我对 Spring 3.2.3 @Transactional 注释有疑问。我的服务类如下所示:
@Service @Transactional
class InventoryDisclosureBO {
@Autowired InventoryDisclosureDAO inventoryDisclosureDAO;
private static final Logger log = LoggerFactory.getLogger( InventoryDisclosureBO.class);
public void processDisclosureData(InventoryDisclosureStatus data){
validate(data);
persist(data);
}
@Transactional(propagation = REQUIRES_NEW)
void persist(InventoryDisclosureStatus data) {
inventoryDisclosureDAO.setAllInvalid( data.getUnit());
inventoryDisclosureDAO.insert( data );
}
void validate(InventoryDisclosureStatus data) {
...
}
}
如果我调用 persist() 方法,一切都会完美地工作。但是,如果我在类级别注释掉 @Transactional - 事务不会开始。有人能告诉我为什么 Spring 只能在甲醇级别忽略 @Transactional 吗?