자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션4 영속성 관리 - 내부 동작 방식🔲 영속성 컨텍스트영속성 컨텍스트: 엔티티를 영구 저장하는 환경.엔티티 매니저를 통해서 영속성 컨텍스트에 접근.◻ 애플리케이션 시작 시 → EntityManagerFactory가 생성됨 (무겁고 비용이 큰 객체).◻ 클라이언트 요청 → 요청마다 새로운 EntityManager가 EntityManagerFactory에서 생성됨.◻ 요청 처리 후 → EntityManager는 닫힘(close).🔲 엔티티의 생명주기비영속 (new/transient): 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태영속 (managed): 영속성 컨텍스트에 관리되는 상태준영속 (detached):
영속성 컨텍스트에 저장되었다가 분리된 상태삭..
JPA

자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션2 JPA 시작하기 🔲 Hello JPA - 프로젝트 생성 ◻ JPA 설정 - persistence.xml • JPA 실행을 위한 기본 설정 파일 • /META-INF/persistence.xml 위치 • persistence-unit name으로 이름 지정 • javax.persistence로 시작: JPA 표준 속성 • hibernate로 시작: 하이버네이트 전용 속성 ◻ 데이터베이스 방언 JPA는 특정 데이터베이스에 종속 X 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다르다. 가변 문자: MySQL은 VARCHAR, Oracle은 VARCHAR2 문자열을 자르는 함수: SQL 표준은 SUBSTRING(), Oracle은SUBSTR()..

자바 ORM 표준 JPA 프로그래밍 - 기본편 섹션1 JPA 소개 ❌SQL을 직접 다룰 때 발생하는 문제점 ◻반복 작업 SQL작성, SQL실행, 객체 매핑,CRUD...지루함과 반복의 연속이다. ◻ SQL에 의존적인 개발 Member 클래스에 연락처를 추가하려면 SQL과 JDBC API를 수정해야한다. 또한 조회,수정 코드를 수정한다.수정에 끝이없다... ◻ 연관된 객체 회원이 어떤 한 팀에 소속되어야 한다는 요구사항이 추가되었다고 해보자. 이때 아래 코드에서 member.getTeam() null 에러가 발생했다. member.getTeam().getTeamName(); // 추가 코드를 살펴보니 연결된 MemberDAO 코드에는 (team조회가 빠져있는) find()메소드를 그대로 유지했다. 알고보니..