JPA3 JPA 연관관계 매핑 객체지향 설계의 목표 객체 지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다. 조영호님(객체지향의 사실과 오해) 객체를 테이블에 맞추어 데이터 중심으로 모델링을 하면 안되는 이유? -> 객체 사이의 협력관계를 만들 수 없다. 테이블은 외래키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 테이블과 객체 사이에는 이런 큰 간격이 있다. 양방향 관계(반대방향으로도 객체 그래프를 탐색) 객체의 양방향 관계는 사실 양방향 관계가 아니라 서로 다른 단방향 관계 2개이다. 객체를 양방향으로 참조하려면 단방향 연관관계를 2개 만들어야 한다. 테이블의 양방향 연관관계 테이블은 외래 키 하나로 두 테이블의 연관관계를 관리 다 테이블에 있는 외래키 하나로 양방향 연.. 2023. 12. 5. JPA Entity의 생명주기와 영속성 컨텍스트(Persistence Context) 영속성 컨텍스트(Persistence Context) JPA를 이해하는데 가장 중요한 용어 "Entity를 영구 저장하는 환경"이라는 뜻 EntityManager.persist(entity) EntityManager와 영속성 컨텍스트 영속성 컨텍스트는 논리적인 개념이다. 눈에 보이지 않는다. EntityManager를 통해서 영속성 컨텍스트에 접근한다. Entity의 생명주기 영속성 컨텍스트의 이점 1차 캐시 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연 (transactional write-behind) 변경 감지(Dirty Checking) 지연 로딩(Lazy Loading) 출처: 김영한님 JPA flush란 무엇인가? 영속성 컨텍스트의 변경 내용을 데이터 베이스에 반영하는 것이다. .. 2023. 12. 4. JPA는 무엇일까? JPA란? - Java Persistence API - 자바 진영의 ORM 기술 표준 ORM이란? - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 대중적인 언어에는 대부분 ORM 기술이 존재 데이터베이스 방언 JPA는 특정 데이터베이스에 종속 X 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다름 가변 문자: MySQL은 VARCHAR, Oracle은 VARCHAR2 문자열을 자르는 함수: SQL 표준은 SUBSTRING(), Oracle은 SUBSTR() • 페이징: MySQL은 LIMIT , Oracle은 ROWNUM 방언: SQL 표준을 지키지 않는.. 2023. 12. 4. 이전 1 다음