이미 많이 알려져 있는 것이다 .SpringBoot로 JPA 사용은 2019년도부터 사용해본 적이 있었다.하지만 조금 더 정확하고 온전히 내 것으로 만들기 위하여 다시 공부해보려고 한다.필자가 JPA 를 공부하기 위하여 선택한 방법은 자바 ORM 표준 JPA 프로그래밍
결론부터 말하자면 설계시에는 단방향 매핑으로 !!============================Member >> NTeam >> 1Member -> Team으로 접근 \-> 단방향 1개Team -> Member로 접근 \-> 단방향 1개 (( 총 2개의 방향 ))D
만약 여러가지 ITEM이 있고 어떤 ITEM을 사용하는지에 따라 변경되는 값이 있다면, 공통으로 사용되는 테이블, 특정 ITEM만 가지고있는 특정 ITEM 테이블 을 생성해준후 사용한다.EX ) 공통사용 ( ITEM ), 특정 ITEM ( MOVIE ) \- ITEM
JPA는 Member와 Team이 매핑이 되어 있는 경우 Team의 데이터를 모두 가져오게 된다. 그럼 Member를 호출할 때 Team이 같이 호출되는 것이 아닌 직접적으로 team의 데이터를 호출할 때 DB를 갔다 오면 안될까? 가능하다. Proxy 프록시 객체
어느정도 JPA 기본에 대하여 공부를 했다 .. 아직 갈 길은 멀었지만 포기하지 않고 끝까지 공부한게 뿌듯하다지금까지 공부한 내용으로 JPA 엔티티를 사용할 때 주의할 점을 정리해보자 한다.Setter 사용 가급적 금지프로젝트의 프로세스가 돌아가면서 변경 포인트가 많아
JPA에서 수정하는 방법은 두가지로 나뉜다.1\. 변경감지2\. mergemerge방법은 사용하지 않는 것이 좋기 때문에 밑줄을 그었다.merge는 해당 엔티티 전체가 변경된다.값이 안들어가 있다면 null로 변경된다.예를들어 수량만 변경을 했는데 다른 데이터들의 값이
MemberRepository.javaMemberRepositoryTest.java1\. JPA에서 페이지 처리할 때 첫번째 페이지 index번호는 0 Page는 totalCount등 페이징 수에 관한 함수를 제공하여 사용할 수 있음 + limit값에 대하여 그대로
실무에서 사용하다보면 유지보수를 위해 등록/수정일, 등록/수정자에 대한 값을 DB에 저장해줘야한다. 순수 JPA로 구현할 순 있지만, Spring Data-JPA를 사용하면 더 간결하게 사용할 수 있다.왜 시간과 등록/수정자를 구분지은 것인가 ? >> 시간은 거의 모든
save()메서드 ..\-> 새로운 엔티티인 경우 : persist\-> 기존의 엔티티인 경우 : merge우리는 merge를 사용하여 update를 시키면 안됨.. 반드시 변경감지를 사용해야한다.merge를 사용하게 된다면 뜻하지 않은 곳에 null이나 빈 값으로 엎
OSIV란? > Open Session In View application.yml의 spring.spa.open-in-view: ture -> 기본값 spring 기본 로직 트랜잭션 시작할 때 DB 커넥션 가져옴 -> 트랜잭션이 끝난 후에도 DB 커넥션을 가지고 있