영속성 컨텍스트 "엔티티를 영구 저장하는 환경"이라는 뜻 (DB의 저장이라기보다, 영속성 컨텍스트에 저장한다는 의미) EntityManager.persist(entity); - 엔티티 매니저를 통해 영속성 컨텍스트에 접근 JPA 에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 (Object Relational Mapping) 영속성 컨텍스트 엔티티의 생명주기 비영속 (new/transient) - 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 객체만 생성한 상태 (비영속) Member member = new Member(); member.set~ 영속(managed) - 영속성 컨텍스트에 관리되는 상태 - DB에 저장되는게 아니다. 저장은 commit EntityManager em =..
Hello JPA - 어플리케이션 개발 H2 데이터베이스 설치 (https://sasca37.tistory.com/13?category=1218302) 4.0.0 jpa-basic ex1-hello-jpa 1.0.0 org.apache.maven.plugins maven-compiler-plugin 11 11 org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 1.4.199 javax.xml.bind jaxb-api 2.3.0 pom.xml 설정 resources - META-INF - pesistence.xml 생성 데이터베이스 방언 JPA는 특정 DB에 종속 X 가변 문자 : MySQL : VARCHAR, Oracle은 VARCH..
패러다임의 불일치 객체지향프로그래밍은 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다. 아직까지는 객체를 영구 보관하는 저장소로 여러가지 방식이 있지만, 아직까지 관계형 데이터베이스로 많이 사용한다. 즉, 객체를 SQL로 변환해야한다. 해당 그림을 살펴보자. 객체 상속 관계로 봤을 때 Album에 데이터 저장은 Album, Item 두 곳에 모두 insert 해야한다. 저장은 어떻게든 되겠지만, 조인 연산을 통해 조회하는 경우를 생각해보자. 각각의 테이블 맞춰 객체를 생성해서 만들어야한다. 상상만해도 복잡하기 때문에 DB에 저장할 객체에는 상속 관계를 사용하지 않는다. 디비가 아닌 자바 컬렉션에서 조회 한다고 가정하면? Album album = l..