조건: 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( ) 를 통해 삭제