영속성 컨텍스트 JPA가 관리하는 엔티티 객체의 집합으로 엔티티를 영구 저장하는 환경이라고 보면 된다. 애플리케이션을 실행하면 엔티티 매니저 팩토리가 생성되고 데이터베이스 작업을 위해 엔티티 매니저를 생성하면 엔티티 매니저에 안에 하나의 영속성 컨텍스트가 생성된다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있다. 엔티티 매니저를 통해 엔티티 객체를 영속성 컨텍스트에 넣으면 JPA는 엔티티 객체의 매핑 정보를 가지고 데이터베이스에 반영한다. 엔티티 생명 주기 비영속성(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태이다. 다르게 말하면 객체를 생성만 한 상태를 뜻한다. 그래서 영속성 컨텍스트에는 존재하지 않은 상태다. // 객체를 생성한 상태(비영속) Member memb..
API Document JitPack | Publish JVM and Android libraries JitPack makes it easy to release your Java or Android library. Publish straight from GitHub or Bitbucket. jitpack.io PG사 코드 PG사 코드 JavaScript SDK PG구분코드를 확인할 수 있습니다. developers.portone.io https://github.com/iamport/iamport-rest-client-java GitHub - iamport/iamport-rest-client-java: JAVA사용자를 위한 아임포트 REST API 연동 모듈입니다 JAVA사용자를 위한 아임포트 REST ..
값 타입은 JPA 강의를 보면서 엔티티를 정의할 때 Value Type이 명시 되어 있어서 자세히 알아보고자 정리하게 되었다. Value Type 값 타입은 자바에서 다루는 원시 타입(Primitive Type)으로 int, Integer, String 등을 의미한다. 값 타입은 3가지로 나눌 수 있다. 기본값 타입(basic value type) String, int, Integer 등 자바에서 제공하는 원시 타입 및 래퍼 클래스 타입 임베디드 타입(embedded type) JPA에서 사용자가 직접 정의한 값 타입 컬렉션 값 타입(collection value type) 하나 이상의 값 타입을 저장할 때 사용 기본값 타입 @Entity public class Member { @Id // ... (생략..
원인 사용자가 정의한 enum에 존재하지 않는 값이 DB에 존재하면 발생하는 오류이다. 예를 들어 아래와 같이 MASTER로 작성했는데, 데이터베이스에는 'master' 또는 'MESTER'이라고 작성되어 있거나 값이 없는 경우(NULL)에 오류가 발생한다. 해결 방법 작성된 열거형 클래스 enum 파일과 데이터베이스에 기입된 내용이 같은지 확인한다. 대소문자를 구분하기 때문에 자세히 봐야 한다.
자바는 객체지향 언어로 객체 중심적으로 개발하며, 데이터베이스는 데이터를 저장하기 위해 질의어인 SQL을 사용하여 테이블 형태로 데이터를 관리한다. 객체와 테이블은 듣기만 해도 서로 다른 느낌이 들지만 구체적으로 어떤 부분에서 차이가 나는지 설명을 못한다. 그래서 이번에는 이 두 사이의 패러다임 불일치에 대해 이야기하고 JPA를 왜 사용해야 하는지까지 정리해보고자 한다. 패러다임 불일치 - JPA에게 맡기자 ▶️ 상속 Item 객체를 상속받는 Album, Movie, Book 객체를 도식화해서 관계를 나타내보았다. 데이터베이스에서도 Table 슈퍼타입 서브타입 관계로 테이블을 설계할 수 있다. 하지만 이는 객체 상속과 유사한 형태일 뿐이지 같다고 할 수 없다. ITEM은 DTYPE을 통해 앨범과 영화, ..
개발자 ≒ SQL Mapper 자바에서는 객체를 다루고 관계형 데이터베이스는 테이블을 다루게 된다. 객체를 SQL로 변환해서 RDB에 데이터를 관리한다. 그럼, 데이터베이스 연동을 위해 JDBC나 MyBatis를 사용하는 데, 이 두 가지 모두 SQL query를 직접 작성해서 데이터베이스에 넘겨줘야 한다. 이런 경우 어떤 불편한 점들이 있는지 확인해 보자. 클래스에 새 필드 변수가 추가 또는 삭제 되는 경우 회원 클래스에 memberId, name 두 필드 변수가 있다. 여기서 다른 필드 변수 email이 추가되거나, 변수 name이 삭제되는 경우 아래 query가 수정이 필요해진다. 수정 횟수도 많겠지만, Mybatis는 XML 파일에서 SQL 쿼리를 작성해서 컴파일 전 오류를 잡지 못한다. 그래서 ..