분류 전체보기(70)
-
JPA(11) - 스키마 자동 생성
이 글은 김영한 선생님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 4-2강을 듣고 정리한 글입니다. 데이터베이스 스키마 자동 생성 DDL을 애플리케이션 실행 시점에 자동 생성 테이블 중심 → 객체 중심 데이터베이스 방언을 활용해서 데이터베이스에 맞는 적절한 DDL 생성 이렇게 생성된 DDL은 개발 장비에서만 사용 생성된 DDL은 운영서버에서는 사용하지 않거나, 적절히 다듬은 후 사용 데이터베이스 스키마 자동 생성 - 속성 create : 기존테이블 삭제 후 다시 생성(DROP + CREATE) create-drop : create와 같으나 종료시점에 테이블 drop update : 변경분만 반영(운영DB에는 사용하면 안됨) validate : 엔티티와 테이블이 정상 매핑되었는지만 확인 none : ..
2023.09.14 -
JPA(10) - 객체와 테이블 매핑
이 글은 김영한 선생님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 4-1강을 듣고 정리한 글입니다. @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 주의 기본 생성자 피루(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X @Entity 속성 정리 name JPA에서 사용할 엔티티 이름을 지정한다. 기본값 : 클래스 이름을 그대로 사용 같은 클래스 이름이 없으면 가급적 기본값을 사용한다. @Table @Table은 엔티티와 매핑할 테이블 지정 @Table 속성 정리 name 매핑할 데이터 이..
2023.09.14 -
JPA(9) - 준영속 상태
이 글은 김영한 선생님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 3-4강을 듣고 정리한 글입니다. 준영속 상태 영속 → 준영속 영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached) 영속성 컨텍스트가 제공하는 기능을 사용 못함 준영속 상태로 만드는 방법 em.detach(entity) - 특정 엔티티만 준영속 상태로 전환 em.clear() - 영속성 컨텍스트를 완전히 초기화 em.close() - 영속성 컨텍스트를 종료
2023.09.13 -
JPA(8) - 플러시
이 글은 김영한 선생님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 3-3강을 듣고 정리한 글입니다. 플러시 - 영속성 컨텍스트의 변경내용을 데이터베이스에 반영 플러시 발생 변경 감지 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법 em.flush() - 직접 호출 트랜잭션 커밋 - 플러시 자동 호출 JPQL 쿼리 실행 - 플러시 자동 호출 플러시 모드 옵션 FlushModeType.AUTO - 커밋이나 쿼리를 실행할 떄 플러시 (기본값) FlushModeType.COMMIT - 커밋할 때만 플러시 플러시는? 영속성 컨텍스를 비우지 않음 영속성 컨텍스트의 변경내용을 데이터베이스에 동기화 ..
2023.09.13 -
JPA(7) - 영속성 컨텍스트2
이 글은 김영한 선생님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 3-2강을 듣고 정리한 글입니다. 1차 캐시 Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); //1차 캐시에 저장됨 em.persist(member); //1차 캐시에서 조회 Member findMember = em.find(Member.class, "member1"); em.persist를 하면 영속 컨텍스트에 등록을 하는 개념이다. 그다음 em.find를 하게되면 먼저 1차 캐시에서 조회를 하게 된다. 없다면 DB에서 조회한 후 가져오게 된다. 이때에도 영속 컨텍스트에 등록이 된다. 영속 엔티티의 동일성 보장 Member a = em..
2023.09.13 -
JPA(6) - 영속성 컨텍스트
이 글은 김영한 선생님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 3-1강을 듣고 정리한 글입니다. 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManager.persist(entity); 영속성 컨텍스트는 논리적인 개념 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 J2SE 환경 - 엔티티매니저와 영속성 컨텍스트가 1:1 관계 엔티티의 생명주기 비영속(new/transient) - 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) - 영속성 컨텍스트에 관리되는 상태 준영속(detached) - 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed) - 삭제된 상태 영속성 컨텍스트의 이점 1차 캐시 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연(..
2023.09.12