Spring Data、JPA、および Hibernate を使用して Spring Web アプリケーションを実行しています。私は物事をテストしていて、サービス層の保存ステートメントを削除した後でもオブジェクトが保存されていることに気付きました。詳細は次のとおりです。
- - - データ - -
public interface FriendGroupRepository extends CrudRepository<FriendGroup, Long>, FriendGroupRepositoryCustom {
}
FriendGroupRepositoryCustom で定義されたメソッドは、私のテストでは使用されません。このテストには、CrudRepository インターフェースのメソッドが 1 つだけ含まれます。
- - - サービス - -
@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);
.......
}
私はかなり混乱していて、何が悪いのかわかりません。さらにコードや構成が必要な場合は、お知らせください。
助けてくれてありがとう!よろしく。