일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 트랜잭션
- Paging
- 우아한테크코스
- Level2
- 우아한세미나
- 프로그래머스
- REDIS
- AOP
- 우테코
- 세션
- 미션
- 백준
- 레벨2
- 서블릿
- mock
- MSA
- 의존성
- 프리코스
- 코드리뷰
- yml
- CircuitBreaker
- HTTP
- 스프링부트
- JPA
- 자바
- AWS
- 스프링 부트
- Docker
- JUnit5
- Spring Batch
- Today
- Total
목록JPA (4)
늘
가장 큰 차이로는, JPA에 의해 처리되느냐, DDL에 의해 cascade가 걸린 테이블이 생겨 DB단에서 처리되느냐 이다. 전자의 방식을 취할 경우, JPA에 의해 외래 키를 찾아가며 참조하는 레코드를 제거해주게 됩니다. 따라서, JPA 상에서는 참조하고 있는 레코드의 개수만큼 delete 쿼리가 생성됩니다. 후자의 방식을 취할 경우, 데이터베이스 자체에서 on delete cascade 제약조건이 걸리게 됩니다. 이를 통해 참조하는 레코드가 모두 제거되는 것입니다. cascade = CASCADE.REMOVE JPA 레벨에서 작동한다. 외래 키를 찾아 참조하는 레코드를 제거해준다. 참조하고 있는 레코드 수 만큼 delete쿼리가 나간다. 부모 테이블의 자식 컬럼에 걸어여하므로(일반적으로 @OneToM..
1차 캐시: @Id와 Entity 스냅샷: 1차캐시에 처음 영속되었을 때의 상태 findByName()과 같이 id가 아닌 값으로 조회를 하면 바로 DB에 접근하게 된다. 플러시 flush(): 영속성 컨텍스트의 내용을 디비에 반영 1차 캐시에 넣어둔게 사라진게 아님! 그냥 반영만 - 동기화 플러시 발생 flush()가 될때 -> 변경 감지-> 수정된 엔티티를 쓰기 지연 SQL저장소 등록 -> 쓰기 지연 SQL저장소의 쿼리 디비에 전송 같은 테이블, JDBC Driver지원, 하이버네이트 같을 때, 디비로 일괄 전송되는 것 영속성 컨텍스트 플러시 할 때 em.flush() - 직접호출 ex) test 트랜잭션 커밋 - 자동 호출 JPQL 쿼리 실행 - 자동 호출 jpql은 객체를 대상으로 하는 sql이므..
OneToOne에서 새로운 이슈를 맞이했다... 쿼리가 두번 나가는 즉, eager로 로딩이 된다. 바로 OneToOne으로 Lazy 로딩을 사용하려면 따로 설정을 해야한다. 또한 OneToOne관계는 fk를 어디에 두느냐에 따라 성격이 달라져서 잘 생각해보고 정해야한다. 결론부터 말하자면 3가지 처리가 필요하다. nullable이 허용되지 않는 @OneToOne 관계. (ex: Plan과 PlanResult) 양방향이 아닌, 단방향 @OneToOne 관계. (parent -> child) @PrimaryKeyJoin은 허용되지 않음. optional 을 false 로 해두는 값은 CascadeType.PERSIST 와 같이 동작 안한다라고 한다.(null일 수 없다) 위의 사진은 주 테이블에 fk를 둔..
화창한 오후..시험도 끝나고 오랜만에 블로그도 정리할겸 확인해보는데 정작 JPA대한 정리가 없었다!!..그래서 오늘은 JPA에 대해서 공부해왔던 내용을 정리해보려고 한다 JPA(Java Persistence Api) JPA가 나온 배경을 보자면, 기존의 MyBatis와 같은 SQL매퍼를 이용한 데이터베이스의 작성은 객체지향과는 거리가 멀다. 그래서 객체 모델링보다는 테이블 모델링에 집중하는 모습을 해결하기 위해서 JPA라는 자바 표준 ORM기술이 나오게 되었다.(* ORM은 객체를 매핑하는 것이고, MyBatis와 같은 SQL Mapper는 쿼리를 매핑하는 것) 관계형 DB는 어떻게 데이터를 저장할지에 초점이 맞춰진 기술이고, 객체지향 프로그래밍은 메시지를 기반으로 기능과 속성을 관리하는 기술이다. --..