Node.js는 Javascript로 서버사이드 개발을 가능하게 해주는 Javascript 런타임으로 공식사이트에서는 다음과 같이 소개하고 있다.
QueryDSL 관련 pom.xml 오류
이클립스에서 QueryDSL로 생성한 Q도메인들을 인식하지 못하여 원인을 파악해보니 pom.xml 의 플러그인 설정에 다음과 같은 오류가 나고 있었다.
영속성 컨텍스트 (Persistence Context) 란 (1)
우리 말로 표현해보자면 엔티티를 영구 저장하는 환경으로 논리적인 개념에 가깝다.
엔티티매니저로 엔티티를 저장하거나 조회하면 영속성 컨텍스트에 엔티티를 보관하고 관리한다.
기본적으로 엔티티매니저가 생성될 때 하나의 영속성 컨텍스트가 만들어지며, 여러 개의 엔티티매니저가 하나의 영속성 컨텍스트에 접근할 수도 있다.
persist 메소드를 “회원 엔티티를 저장한다”보다 정확히 얘기하면 “엔티티매니저를 사용해서 회원 엔티티를 영속성 컨텍스트에 저장한다”로 말할수있다.
엔티티의 생명주기
비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 순수한 객체인 상태 영속 (managed) : 영속성 컨텍스트에 저장된 상태, 영속성 컨텍스트에 의해 관리되는 상태 준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제 (removed) : 삭제된 상태
영속성 컨텍스트 (Persistence Context) 란 (2)
플러시는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영한다.
Java 동등성과 동일성의 차이
동일성은 인스턴스가 실제로 같은 인스턴스임을 의미하는 바로 == 연산자를 통해 비교한다.
EntityManagerFactory와 EntityManager
EntityManagerFactory (엔티티매니저팩토리)
일반적으로 데이터베이스를 하나만 사용하는 애플리케이션은 EntityManagerFactory를 하나만 생성한다.
META/INF/persistence.xml 에 설정한 정보를 기반으로 다음과 같은 코드로 생성할 수 있다.
기본적인 JPA 설정방법
JPA 구현체로 Hibernate를 사용하기 위해 필요한 핵심 라이브러리가 존재한다.
JPA 기본적인 CRUD 해보기
간단한 애플리케이션을 작성하여 기본적인 JPA CRUD를 수행해본다.
JPA / ORM 이란?
JPA란
JPA란 Java Persistence API의 약자로 자바 진영의 표준 ORM 기술이다.
ORM이란 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스를 매핑하는 기술을 의미한다.
객체 모델과 관계형 데이터베이스 모델 차이
JPA란
객체 모델과 관계형 데이터베이스 모델은 지향하는 목적이 다르다. (패러다임의 불일치)
-
객체지향 언어의 추상화, 상속, 다형성 등의 개념이 관계형 데이터베이스에는 없다.
-
관계형 데이터베이스는 데이터 중심으로 구조화되어 있고, 집합적인 사고를 요구한다.
문제는 이 패러다임의 차이를 극복하려고 개발자가 너무 많은 시간과 코드를 소비한다는 점이다.