我正在使用 Spring Data、JPA 和 Hibernate 做一个 Spring Web 应用程序。我正在测试事物并注意到即使在我删除了服务层中的保存语句之后我的对象也被保存了。以下是详细信息:
- - - 数据 - -
public interface FriendGroupRepository extends CrudRepository<FriendGroup, Long>, FriendGroupRepositoryCustom {
}
我的测试中没有使用 FriendGroupRepositoryCustom 中定义的方法。该测试仅涉及 CrudRepository 接口中的一种方法。
- - - 服务 - -
@Service
@Repository
@Transactional
public class AccountServiceImpl implements AccountService {
@Override
@Transactional
public void saveFriendGroup(FriendGroup group) {
friendGroupRepository.save(group);
}
}
在我删除了friendGroupRepository.save(group); 从上面,对象仍然被保存到数据库中。我进行了调试和跟踪,并确认在我提交表单时确实调用了此方法。
------ 网络控制器 ---------
@RequestMapping(value={"/formtest"}, method=RequestMethod.POST)
public String formPost(HttpServletRequest request,
Model model, Map<String, Object> map,
@ModelAttribute("command") FriendGroup fg,
BindingResult result,
SessionStatus status ){
......
accountService.saveFriendGroup(fg);
.......
}
我很困惑,不知道出了什么问题。如果需要更多代码或配置,请告诉我。
谢谢你的帮助!问候。