Spring

Spring 일지 #53 (20211005) 일괄 삭제

uni5948 2021. 10. 6. 16:07

53. 일괄 삭제

-일괄 삭제

 *서비스 추가(ItemServiceImpl.java)

 *삭제할 때 아이템을 등록한 아이디로 삭제해야 한다. 다른 아이디로 삭제하면 변화 없음.

... ...

// 일괄 삭제

    public void deleteBatch(List<Itemlist) {

        EntityManager em = emf.createEntityManager();

        em.getTransaction().begin(); // 트랜젝션 시작

        // Item은 엔티티의 클래스명

        // INSERT INTO 테이블명(칼럼명) VALUES(추가할 값)

        String sql = " DELETE FROM Item " + " WHERE NO=:no AND SELLER_ID=:member"; <- 조건

        for (Item item : list) {

            em.createNativeQuery(sql).setParameter("no"item.getNo())

                    .setParameter("member"item.getMember().getEmail()).executeUpdate();

        }

        em.getTransaction().commit();

    }

 

 */seller/item_delete 추가(SellerController.java)

 * @RequestBody를 사용했으므로 포스트맨에서 json 타입을 사용한다.

 

... ...

 

    // 127.0.0.1:8080/REST/api/seller/item_delete

    @RequestMapping(value = "/seller/item_delete"method = {

            RequestMethod.DELETE }, consumes = MediaType.ALL_VALUEproduces = MediaType.APPLICATION_JSON_VALUE)

    // [{"name":,"content":, "price": "quantity":}, { }, { }]

    public Map<StringObjectitemdeleteDELETE(@RequestBody List<Itemlist, @RequestHeader("token"String token) {

        Map<StringObjectmap = new HashMap<>();

        try {

            // 판매자 이메일 가져오기

            String email = jwtUtil.extractUsername(token);

            for (Item item : list) {

                Member member = mService.getMemberOne(email);

                item.setMember(member);

            }

            // 일괄삭제

            iService.deleteBatch(list);

            map.put("status"200);

        } catch (Exception e) {

            // e.printStackTrace();

            map.put("status"e.hashCode());

        }

        return map;

    }

... ...

 

 *일괄 삭제

 *수정 전 로그인을 해서 토큰을 생성한다.

 

토큰 생성
삭제 완료
삭제 확인