카테고리 없음

JPA[day2]- EntityManagerCRUDTests

presnt__lee 2023. 4. 11. 16:20
반응형

조건: Menu라는 객체가 있다. 그리고 엔티티로 등록한다. 

 

메뉴코드로 _메뉴_조회_테스트(){

//given

int menuCode=2;

 

//when //entityManager의 조회기능은 find 메소드 통해서 가능 //어떤객체(1) , 2번인객체를 찾아와라(2)

Menu foundMenu=entityManager.find(Menu.class, menuCode);

 

//then //

assertNotNull(foundMenu); //null 여부 확인

assertEquals(menuCode, foundMenu.getMenuCode()); //같은거냐 안 같냐 확인

System.out.println("foundMenu="+foundMenu); /*@조회@*/

find 메소드로 가져와서 조회하면 된다. 

 

메뉴_이름_수정_테스트(){

//given

Menu menu= new Menu();

menu.setMenuName("JPA 테스트용 신규 메뉴");

menu.setMenuPrice(5000);

menu.setCategoryCode(4);

menu.setOrderableStatus("Y");

 

//when

// 잘되면 커밋 안되면 롤백

 

/*entityTransaction.begin(); 메소드를 호출하면 엔티티 매니저가 데이터베이스와의 연결을 맺고 트랜잭션을 시작합니다.

* 이후에는 엔티티 매니저를 통해 데이터베이스의 상태를 변경할 수 있습니다.*/

 

EntityTransaction entityTransaction = entityManager.getTransaction();

entityTransaction.begin();

 

try { //보관해달라고 요청 -> insert 가 됨.

entityManager.persist(menu); //@isert 메소드 persist@

entityTransaction.commit();

}catch(Exception e) {

entityTransaction.rollback();

}

 

//then //contains 가지고 있나요? 라는 메소드 맞으면 true

assertTrue(entityManager.contains(menu));

 

}

insert메소드는 persist

 

메뉴_이름_수정_테스트(){}

//given 1)찾아오기 menu의 2번 2) 가공하디

Menu menu =entityManager.find(Menu.class,2);

System.out.println("menu="+menu);

//바꾸고 싶은거

String menuNameToChange="우럭뽈살젤리";

 

//when

EntityTransaction entityTransaction = entityManager.getTransaction();

entityTransaction.begin();

 

try {

menu.setMenuName(menuNameToChange); //@수정하기 위한 기능적 메소드@

entityTransaction.commit();

}catch(Exception e) {

entityTransaction.rollback();

e.printStackTrace();

}

//then

assertEquals(menuNameToChange, entityManager.find(Menu.class,2).getMenuName()); ///junit 테스트 기능이여서 junit 에 초록색 기능이 떳다면 트루 정상적으로 작동한다.

}

find 메소드를 통해 객체를 가져와서 

Set 메소드를 통해서 수정한다. 

 

메뉴_삭제하기_테스트(){}

 

//given //1)삭제할넘 찾아오라

Menu menuToRemove = entityManager.find(Menu.class ,1);

 

//when

EntityTransaction entityTransaction = entityManager.getTransaction();

entityTransaction.begin();

 

try {

entityManager.remove(menuToRemove); //삭제하기 위한 기능적 메소드

entityTransaction.commit();

}catch(Exception e) {

entityTransaction.rollback();

e.printStackTrace();

}

 

//then

Menu removedMenu=entityManager.find(Menu.class ,1);

assertEquals(null,removedMenu);

find 해서 엔티티를 가지고 와서 entityManager.remove( )   를 통해 삭제 

반응형