일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 값 타입 비교
- 양방향 매핑
- MySQL
- 즉시 로딩
- 기본값 타입
- 세션 생성 정책
- 지연 로딩
- 상속관계 매핑
- ddl-auto
- spring jpa
- Spring Security
- 임베디드 타입
- JPQL
- orphanRemovel
- AnonymousAuthenticationFilter
- SessionManagementFilter
- 다대다
- Remember-me
- Database
- 값 타입 컬렉션
- @MappedSuperclasss
- field column mapping
- TABLE
- 동시 세션 제어
- 기본 키 매핑
- 세션 고정 보호
- jpa
- form login
- concurrentsessionfilter
- 객제지향 쿼리 언어
- Today
- Total
목록전체 글 (38)
hoondev
@Entity @Entity public class Member {}; @Entity 어노테이션을 객체위에 붙히면 데이터베이스의 테이블과 객체가 매핑된다. @Entity가 붙은 객체는 JPA가 관리하고 엔티티라고 부른다. 주의 기본 생성자 필수 final 클래스, enum, interface, inner 클래스 사용X 저장할 필드에 final 사용X @Table @Entity @Table(name = "MBR") public class Member {}; @Table 어노테이션은 엔티티와 매핑할 테이블을 사용한다. 만약 사용하지 않으면 객채와 이름이 같은 테이블과 매핑된다. Reference https://www.inflearn.com/course/ORM-JPA-Basic
준영속 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태이다. 당연히 영속성 컨텍스트가 제공하는 기능을 사용하지 못한다. 준영속 상태로 만드는 방법 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차 캐시에 저..
전에 만들었던 tistory가 실수로 없어져서 새 tistory를 시작한다. 어차피 전에 있던 tistory는 게시물을 5개밖에 올리지 않아서 괜찮은거같다. 그리고 전에 운영했던 velog도 있다. 사실 velog에서 티스토리로 블로그를 이전한 것이다. 전에 있던 velog: https://velog.io/@hooncdn
ORM (Object-Relational Mapping) ORM이란 객체와 데이터베이스와 매핑해 주는 기술을 말한다. ORM의 사용으로 개발자들은 더 자연스럽고 직관적으로 개발을 할 수 있게 되었다. 예를 들어 개발자가 원시 SQL문을 작성하는 대신 클래스, 객체, 속성과 같은 친숙한 프로그래밍 구조를 사용하여 데이터 작업을 수행할 수 있다. JPA (Java Persistence API) 자바의 대표적인 ORM 기술 표준이 바로 JPA이다. JPA를 사용하여 얻는 내가 정리한 이점은 다음과 같다. 생산성: JPA는 SQL 문을 작성하지 않고 데이터에서 CRUD 작업을 수행하기 위한 표준 인터페이스 및 클래스 세트를 제공한다. 이를 통해 개발자는 상당한 시간을 절약하고 코드를 더 읽기 쉽고 유지 관리할 ..