게시판 구현(1)

김지민·2023년 6월 28일

spring Boot

목록 보기
3/9

JPA: Junit TEST

crud

select

insert

Parameters:entity must not be null.
Returns:the saved entity; will never be null.

마이 바티스와는 달리 param 값이 return 값이 됨.


Hibernate: select posts_seq.nextval from dual

id 값을 넣어 주기 위해서 다음 시퀀스의 값을 먼저 찾은 다음에 insert 문장 수행함.

결과:
Hibernate: insert into posts (author,content,created_time,modified_time,title,id) values (?,?,?,?,?,?)

my Batis의 경우에는 조작이 가능함.
단, JPA의 경우에는 DB와 밀접한 관련성이 있음
entity가 실제로 레코드와 매핑이 되기에 주의 필

  • JPA 라이브러리: HIBERNATE

update

update된 entity 객체를 리턴함.(my Batis)와는 다른 점.

select한 내용을 가지고 해당 id값의 entity값(row 존재 확인)을 찾은 후에 update를 함.

modified_time: update가 이루어질 경우에

@LastModifiedDate // update될 떄의 시간이 자동으로 기록됨.

다음과 같은 @으로 자동 변경이 됨.

delete

전달한 id로 select가 가능한지 확인 후 있으면, delete 문장을 호출함.

sql 오류
ORA-02292: 무결성 제약조건(SCOTT.REPLIES_POST_ID_FK)이 위배되었습니다- 자식 레코드가 발견되었습니다

  • jpa는 foriegn key가 있고 사용되고 있으면 삭제 불가(my Batis도 동일함)

dispatcher Servlet: class의 기본생성자로 객체 생성하고, setter로 값을 채울 수 있음

profile
한 단계씩 차근차근

0개의 댓글