일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 세션 생성 정책
- Spring Security
- Database
- MySQL
- 양방향 매핑
- 기본 키 매핑
- JPQL
- 동시 세션 제어
- SessionManagementFilter
- 기본값 타입
- 다대다
- Remember-me
- TABLE
- 세션 고정 보호
- @MappedSuperclasss
- 값 타입 컬렉션
- 임베디드 타입
- 객제지향 쿼리 언어
- spring jpa
- form login
- 지연 로딩
- 즉시 로딩
- orphanRemovel
- 값 타입 비교
- jpa
- field column mapping
- 상속관계 매핑
- concurrentsessionfilter
- AnonymousAuthenticationFilter
- ddl-auto
- Today
- Total
목록Spring JPA (28)
hoondev
준영속 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태이다. 당연히 영속성 컨텍스트가 제공하는 기능을 사용하지 못한다. 준영속 상태로 만드는 방법 em.detach(entity): 특정 엔티티만 준영속 상태로 전환 em.clear(): 영속성 컨텍스트를 완전히 초기화 em.close(): 영속성 컨텍스트 종료 Reference https://www.inflearn.com/course/ORM-JPA-Basic
플러시 플러시는 영속성 컨텍스트의 변경내용을 DB에 동기화하는 작업이다. 플러시가 일어나면 더티 체킹(변경 감지), 수정된 엔티티를 쓰기 지연 SQL 저장소에 저장 후 DB에 쿼리 전송 같은 작업이 일어난다. 플러시 하는 방법 em.flush(): 직접 호출 트랜잭션 커밋: 플러시 자동 호출 JPQL쿼리 실행: 플러시 자동 호출 JPQL 쿼리 실행 시 플러시가 자동으로 호출되는 이유 영속성 컨텍스트에 있지만 플러시는 되지 않은 객체를 찾는 쿼리 날린다고 가정해 보자. 플러시 되지 않은 객체는 DB에 값이 없으므로 조회되지 않는다. 그럼 이 쿼리는 아무것도 찾지 못할 것이다. 이처럼 객체를 찾는 쿼리를 성공시키기 위해서 플러시를 호출한다. 모드 옵션 FlushModeType.AUTO: 커밋이나 쿼리를 실행..
영속성 컨텍스트 영속성 컨텍스트는 엔티티를 영구히 저장하는 환경이라는 뜻이다. 엔티티의 생명 주기 비영속 (new / transient) 영속성 컨텍스트와 관계없는 새로운 상태. 영속 (managed) em.persist(entity); 영속성 컨텍스트에 관리되는 상태. 준영속 (detached) em.detach(entity); 영속성 컨텍스트에 저장되었다가 분리된 상태. 삭제 (removed) em.remove(entity); 삭제된 상태. 영속성 컨텍스트 사용 이점 1차 캐시 JPA는 엔티티를 persist하고 다시 조회하면 데이터베이스에서 조회하지 않고 1차캐시에서 엔티티를 조회한다. 만약 1차캐시에 엔티티가 없으면 데이터베이스에서 조회하고 1차캐시에 저장한다. 그후 다음 요청부턴 1차 캐시에 저..
ORM (Object-Relational Mapping) ORM이란 객체와 데이터베이스와 매핑해 주는 기술을 말한다. ORM의 사용으로 개발자들은 더 자연스럽고 직관적으로 개발을 할 수 있게 되었다. 예를 들어 개발자가 원시 SQL문을 작성하는 대신 클래스, 객체, 속성과 같은 친숙한 프로그래밍 구조를 사용하여 데이터 작업을 수행할 수 있다. JPA (Java Persistence API) 자바의 대표적인 ORM 기술 표준이 바로 JPA이다. JPA를 사용하여 얻는 내가 정리한 이점은 다음과 같다. 생산성: JPA는 SQL 문을 작성하지 않고 데이터에서 CRUD 작업을 수행하기 위한 표준 인터페이스 및 클래스 세트를 제공한다. 이를 통해 개발자는 상당한 시간을 절약하고 코드를 더 읽기 쉽고 유지 관리할 ..