전체 글

JPA/자바 ORM 표준 JPA 프로그래밍 - 기본편

[자바 ORM 표준 JPA 프로그래밍 - 기본편] 5. 연관관계 매핑 기초(2)

양방향 매핑 시 가장 많이 하는 실수 연관관계의 주인에 값을 입력하지 않음 Member member = new Member(); member.setUsername("member1"); em.persist(member); Team team = new Team(); team.setName("TeamA"); team.getMembers().add(member); em.persist(team); Member의 TEAM_ID의 값이 NULL → 연관관계 주인이 Member에 있는 team → Team에 있는 members는 가짜 매핑 → 읽기 전용 → JPA에서 업데이트 할 때 사용하지 않는다. 연관관계의 주인에 값 넣어줘야 한다. Team team = new Team(); team.setName("TeamA")..

JPA/자바 ORM 표준 JPA 프로그래밍 - 기본편

[자바 ORM 표준 JPA 프로그래밍 - 기본편] 5. 연관관계 매핑 기초(1)

목표 객체와 테이블 연관관계의 차이 이해하기 객체의 참조와 테이블의 외래 키 매핑하기 용어 이해 (방향 - 단방향, 양방향) (다중성- 다대일, 일대다, 일대일, 다대다) (연관관계의 주인 - 객체 양방향 연관관계는 관리 필요) 연관관계가 필요한 이유 → 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것 예제 시나리오 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원(N)과 팀(1)은 다대일 관계다. 객체를 테이블에 맞추어 모델링 객체를 테이블에 맞추어 데이터 중심으로 모델링하면 협력관계를 만들 수 없다. 테이블은 외래키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다 → 테이블과 객체 사이에 간격 존재 객체지향 모델링 단방향 매핑 M..

Spring Boot

Spring Boot

MVC 구조 Request -> Router -> Controller -> Service/Provider -> DAO -> DB DB -> DAO -> Service/Provider -> Controller -> Router -> Response Spring boot Request(시작) / Response(끝) ⇄ Controller(= Router + Controller) ⇄ Service (CUD) / Provider (R) ⇄ DAO (DB) Router 외부에서 요청을 받아 URI와 매핑된 Controller에 전달 Controller Request를 Service/Provider에게 넘겨주고 응답 형식적 Vaildation(값, 길이 등) -> DB를 거치지 않고 요청 데이터의 유효 여부 검증..

카테고리 없음

RESTful API

RESTful API 구성 요소 자원(resource) : URI 행위(verb) : HTTP Method 표현(representations) : HTTP Message Body 1. URI -> 정보의 자원을 표현, 명사, 복수형 사용 GET /users/1 2. 자원에 대한 행위는 HTTP Method(POST, GET, PUT, DELETE)로 표현 POST /users/sign-up POST /users/log-in GET /users URI 설계시 주의 1. 마지막에 슬래시(/) 포함 x 2. underbar(_) 대신 dash(-) 사용 3. 소문자 사용 -> 대소문자에 따라 다른 리소스로 인식하기 때문 4. 행위는 포함하지 않음 HTTP Method GET과 DELETE는 body X POS..

JPA/자바 ORM 표준 JPA 프로그래밍 - 기본편

[자바 ORM 표준 JPA 프로그래밍 - 기본편] 4. 엔티티 매핑

객체와 테이블 매핑 @Entity - @Entity가 붙은 클래스 → JPA가 관리하는 엔티티 - JPA를 사용하여 테이블과 매핑할 클래스는 필수! 주의 - 기본 생성자 필수 (파라미터가 없는 public or protected 생성자) - final 클래스, enum, interface, inner 클래스 사용 x 속성 : name - JPA에서 사용할 엔티티 이름을 지정 (기본값 : 클래스 이름) @Table 엔티티와 매핑할 테이블 지정 name → 매핑할 테이블 이름 : @Table(name = “MBR”) 데이터베이스 스키마 자동 생성 DDL을 애플리케이션 실행 시점에 자동 생성 테이블 중심 → 객체 중심 데이터베이스 방언을 활용하여 데이터베이스에 맞는 적절한 DDL 생성 이렇게 생성된 DDL은 ..

JPA/자바 ORM 표준 JPA 프로그래밍 - 기본편

[자바 ORM 표준 JPA 프로그래밍 - 기본편] 3. 영속성 관리

JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑 영속성 컨텍스트 엔티티 매니저 팩토리와 엔티티 매니저 영속성 컨텍스트 “엔티티를 영구 저장하는 환경” 논리적인 개념, 눈에 보이지 않음 EntityManager.persist(entity); → DB에 저장하는 것이 아니라 영속성 컨텍스트에 저장 EntityManager를 생성하면 영속성 컨텍스트가 1:1로 생성 → EntityManager 안에 영속성 컨텍스트가 보이지 않는 공간에 생김 엔티티의 생명주기 비영속 (new/transient) 영속성 컨텍스트와 관계없는 새로운 상태 객체를 생성한 상태 - 세팅만 한 상태 Member member = new Member(); member.setId(100L); member.setName("Hell..

JPA/자바 ORM 표준 JPA 프로그래밍 - 기본편

[자바 ORM 표준 JPA 프로그래밍 - 기본편] 2. JPA 시작

Hello JPA - 프로젝트 생성 h2 데이터베이스 설치 및 실행 http://www.h2database.com/ hibernate ORM 5.3.10 설치 spring과 엮여서 실행할 때 라이브러리 버전 선택 spring → PROJECTS → Spring Boot 에서 내가 사용할 spring 버전을 보고 org.hibernate의 버전과 궁합 맞추기 Hibernate. Everything data. maven으로 Java 프로젝트 만들기 (jdk 1.8 사용) (Ctrl + Alt + Shift + S → 프로젝트의 SDK 버전 변경) pom.xml에 라이브러리 추가 4.0.0 org.example ex1hellojpa 1.0-SNAPSHOT org.hibernate hibernate-entity..

JPA/자바 ORM 표준 JPA 프로그래밍 - 기본편

[자바 ORM 표준 JPA 프로그래밍 - 기본편] 1. JPA 소개

강의 목표 - 객체와 테이블 설계 매핑, JPA 내부 동작 방식 이해 객체와 테이블을 잘 생성하고 매핑하는 것의 중요성 SQL 중심적인 개발의 문제점 데이터베이스 세계의 주도권 - 관계형 DB (Oracle, MySQL) 무한 반복, 지루한 코드, 패러다임의 불일치의 문제 관계형 DB를 쓰는 상황에서 SQL에 의존적인 개발을 피하기 어렵다. 패러다임의 불일치의 문제 관계형 DB와 객체가 나온 사상이 다르다. → 현실적인 대안은 관계형 DB 자바 컬렉션에 넣을 때는 문제가 단순하지만, 관계형 DB에 넣고 빼낼 때 SQL 매핑 작업이 번잡함. 객체를 자바 컬렉션에 저장하듯이 DB에 저장할 수 없을까? → JPA JPA - Jave Persistence API - 자바 진영의 ORM 기술 표준 ORM - Ob..

koeyhk
개발 블로그