본문 바로가기

JPA 프로그래밍

(15)
[자바 ORM 표준 JPA 프로그래밍] 실전 예제1 - 요구사항 분석과 기본 매핑 ( 3/3 ) - 요구사항 분석 회원은 상품을 주문할 수 있다. 주문 시 여러 종료의 상품을 선택할 수 있다. - 기능 목록 회원 가능 회원등록 회원조회 상품 기능 상품등록 상품수정 상품조회 주문 기능 상품주문 주문내역조회 주문취소 - 도메인 모델 분석 회원과 주문의 관계 : 회원은 여러 번 주문할 수 있다. ( 일대다 ) 주문과 상품의 관계 주문할 때 여러 상품을 선택할 수 있다. 반대로 같은 상품도 여러 번 주문될 수 있다. 주문 상품이라는 모델을 만들어서 다애다 관계를 일대다, 다대일 관계로 풀어낼 수 있다. - 테이블 설계 - 엔티티 설계와 매핑 - 데이터중심 설계의 문제점 현재 방식은 객체 설계를 테이블 설계에 맞푼 방식 테이블의 외래키를 객체에 그대로 가져옴 객체 그래프 탐색이 불가능 참조가 없으므로 UML..
[자바 ORM 표준 JPA 프로그래밍] 엔티티 매핑 - 필드와 컬럼 매핑, 기본키 매핑 ( 2/3 ) - 테스트 요구사항 회원은 일반 회원과 관리자로 구분해야 한다. 회원 가입일과 수정일이 있어야 한다. 회원을 설명할 수 있는 필드가 있어야 한다. 이 필드는 길이 제한이 없다. - @Column - @Enumerated 다바 enum 타입을 매핑할 때 사용 주의! ORDINAL 사용 X STRING TYPE 권장 배열 순서가 변경될 수도 있음 - @Transient 필드 매핑 X 데이터베이스에 저장X, 조회X 주로 메모리상에만 임시로 어떤 값을 보관하고 싶을 때 사용 @Transient private Integer temp; - 기본 키 매핑 어노테이션 @Id @GeneratedValue @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long ..
[자바 ORM 표준 JPA 프로그래밍] 엔티티 매핑 - 객체와 테이블 매핑, DB 스키마 자동 생성( 1/3 ) - 엔티티 매핑 소개 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매피 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn 1:1, 1:다, 다:다 같은 매핑 - 객체와 테이블 매핑 1. @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 protcted 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X ※ 필드에 final을 사용할 수 없는 이유 엔티티 객체가 언제 변경되었는지 감지하기 위해 구현에서 런타임에 클래스를 하위 클래스..
[자바 ORM 표준 JPA 프로그래밍] 영속성 관리 - JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 Object Relational Mapping 영속성 컨텍스트(실제로 내부에서 어떻게 작동하는지?) - 엔티티 매니저 팩토리와 엔티티 매니저 - 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManager.persist(entity); '엔티티 객체를 DB에 저장하는 구나'라고 생각하고 있습니다. 하지만 실제로는 영속성 컨텍스트에 저장을 합니다. 논리적인 개념 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 - 엔티티의 생명주기 비영속 ( new / transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 객체를 생성한 상태 ( 비영속 ) Member member = new Member(); member.setI..
[자바 ORM 표준 JPA 프로그래밍] Hello World 프로젝트 ( 2/2 ) - JPA 설정하기 ( persistence.xml) JPA 설정파일 /META-INF/persistence.xml 위치 persistence-unit name으로 이름 지정 javax.persistence로 시작 : JPA 표준 속성 hibernate로 시작 : 하이버네이트 전용 속성 - persistence.xml 생성( 위치 : src/main/resources/META-INF/persistence.xml) - 데이터베이스 방언 JPA는 특정 데이터베이스에 종속적이지 않습니다. 각각의 데이터베이스가 제공하는 SQL 문법과 함수는 조금씩 다릅니다. 가변 문자 : Mysql은 VARCHA, Oracle은 VARCAR2 문자열을 자르는 함수 : SQL 표준은 SUBSTRING(), Oracle은 SUBS..
[자바 ORM 표준 JPA 프로그래밍] Hello World 프로젝트 ( 1/2 ) ※ 실습 도중에 H2 데이터베이스 1.4.200 버전에서 발생하는 문제가 있어서 삭제 후 1.4.119로 변경하였습니다. https://www.inflearn.com/questions/17219 기존 테이블이 삭제되지 않는 문제.. - 인프런 | 질문 & 답변 안녕하세요 영한님 강좌를 보며 예제를 따라하던중 제 프로젝트가 영한님과 다르게 실행되는것 같아 질문을 올립니다 hibernate.hbm2ddl.auto = create 인 상황에서 프로젝트를 실행하면 기존에 생성되 www.inflearn.com - 실습용 데이터 베이스 다운로드(H2 Database Engine Download) https://www.h2database.com/html/main.html H2 Database Engine H2 Dat..
[자바 ORM 표준 JPA 프로그래밍] 들어가며 https://www.youtube.com/watch?v=lqS6xG0ioEE http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788960777330 자바 ORM 표준 JPA 프로그래밍 - 교보문고 스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임 | ★ 이 책에서 다루는 내용 ★■ JPA 기초 이론과 핵심 원리■ JPA로 도메인 모델을 설계하는 과정을 예제 중심으로 www.kyobobook.co.kr 기존에 쿼리에 집중된 개발에서 벗어나 객체지향 프로그래밍을 하고 싶었습니다. 저는 jpa 개념이 잘 와닿지 않았습니다. 실무에서 데이터를 조회할 때 join이 필수적이라고 생각해서 jp..