更新(汚れた切断)

1904 ワード

更新
1.saveによる更新
@PutMapping("/dummy/user/{id}")
	public User updateUser(@PathVariable int id , @RequestBody User requestUser) {
		System.out.println("id : "+id);
		System.out.println("password : "+ requestUser.getPassword());
		System.out.println("email : "+ requestUser.getEmail());
        
       //유저 id로 유저 정보를 가지고와 user에 담는다
		User user = userRepository.findById(id).orElseThrow(()->{
			return new IllegalArgumentException("수정 실패");
		});
		//user에 담겨있는 정보를 변경한다
		user.setPassword(requestUser.getPassword());
		user.setEmail(requestUser.getEmail());
        
        userRepository.save(user);
        
 return null;
  }
json形式のデータ(変更するデータ)をputで受信して設定する
そして保存
saveは通常挿入に使用されます.
save関数がidを渡さない場合、insertが提供されます.
save関数はidを渡すと、そのidのデータがあれば更新されます.
save関数はidを渡す際に、そのidのデータがなければinsertを提供する
@requestBodyリファレンスの使用
jsonデータを要求するとき->Javaオブジェクト(MessageConverterのJacksonライブラリで変換して受信)
2.Transactional使用状況の更新
@Transactional
@PutMapping("/dummy/user/{id}")
	public User updateUser(@PathVariable int id , @RequestBody User requestUser) {
		System.out.println("id : "+id);
		System.out.println("password : "+ requestUser.getPassword());
		System.out.println("email : "+ requestUser.getEmail());
        
       //유저 id로 유저 정보를 가지고와 user에 담는다
		User user = userRepository.findById(id).orElseThrow(()->{
			return new IllegalArgumentException("수정 실패");
		});
		//user에 담겨있는 정보를 변경한다
		user.setPassword(requestUser.getPassword());
		user.setEmail(requestUser.getEmail());

        
 return null;
@Transactionalによる更新=ダーティ処理と呼ぶ
@Transactionalメソッドの終了時に自動的にコミット