51. 일괄 수정
-일괄 수정
*서비스 추가(ItemServiceImpl.java)
*수정할 때 아이템을 등록한 아이디로 수정해야 한다. 다른 아이디로 수정하면 변화 없음.
... ...
// 일괄 수정
public void updateBatch(List<Item> list) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin(); // 트랜젝션 시작
String sql = " UPDATE Item SET NAME=:name, CONTENT=:content, " + " PRICE=:price, QUANTITY=:quantity "
+ " WHERE NO=:no AND SELLER_ID=:member"; <- 수정할 변수와 조건
for (Item item : list) {
em.createNativeQuery(sql).setParameter("name", item.getName()).setParameter("content", item.getContent())
.setParameter("price", item.getPrice()).setParameter("quantity", item.getQuantity())
.setParameter("no", item.getNo()).setParameter("member", item.getMember().getEmail())
.executeUpdate();
}
em.getTransaction().commit();
}
... ...
*/seller/item_update 추가(SellerController.java)
* @RequestBody를 사용했으므로 포스트맨에서 json 타입을 사용한다.
... ...
// 127.0.0.1:8080/REST/api/seller/item_update
@RequestMapping(value = "/seller/item_update", method = {
RequestMethod.PUT }, consumes = MediaType.ALL_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
// [{"name":,"content":, "price": "quantity":}, { }, { }]
public Map<String, Object> itemupdatePUT(@RequestBody List<Item> list, @RequestHeader("token") String token) {
Map<String, Object> map = new HashMap<>();
try {
// 판매자 이메일 가져오기
String email = jwtUtil.extractUsername(token);
for (Item item : list) {
Member member = mService.getMemberOne(email);
item.setMember(member);
}
// 일괄수정
iService.updateBatch(list);
map.put("status", 200);
} catch (Exception e) {
// e.printStackTrace();
map.put("status", e.hashCode());
}
return map;
}
... ...
*일괄 수정
*수정 전 로그인을 해서 토큰을 생성한다.
'Spring' 카테고리의 다른 글
Spring 일지 #54 (20211005) 조회 (0) | 2021.10.06 |
---|---|
Spring 일지 #53 (20211005) 일괄 삭제 (0) | 2021.10.06 |
Spring 일지 #51 (20211005) 일괄 추가 2 (0) | 2021.10.06 |
Spring 일지 #50 (20211005) 일괄 추가1-3 (0) | 2021.10.06 |
Spring 일지 #49 (20211005) 일괄 추가1-2 (0) | 2021.10.06 |