在spring工程中 中使用@Transactional实现事务,经常会出现事务失效的现象,是因为用@Transactional实现事务有特殊的要求:
1、只能是bean对象的public接口使用@Transactional
2、只能通过bean对象使用@Transactional接口
怎么理解这两个条件呢?通过一个实例场景来理解一下。
业务需求,往数据库person表中添加数据,添加数据前,给person对象设置自维护的主键ID,其中获取自维护主键ID接口需要独立的事务。
错误的代码
Service接口文件
public interface PersonService {
Person InsertPerson(Person person);
}
Service实现类
@Service
public class PersonServiceImpl implements PersonService