기억노트
[ JPA ] 5-2. Entity Relations ( 1:1 @OneToOne )
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 2. Query Method 정의 및 실습 3. Entity 기본 속성 4. Entity Listener 5-1. Entity Relations (ERD, 데이터베이스 기준 연관 관계) 1. 속성 @OneToOne 속성 optional: 데이터가 필수적(not null)인지, 아닌지(null) 여부 ( default: true ) → 필수적일 때(optional = false) 컬럼은 not null, select 쿼리는 inner join으로 변경 Hibernate: create table book_review_info ( id bigin..
[ JPA ] 5-1. Entity Relations (ERD, 데이터베이스 기준 연관 관계)
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 2. Query Method 정의 및 실습 3. Entity 기본 속성 4. Entity Listener 1. ERD 1. ERD 작성하기 웹 ERD 작성: http://draw.io/ 2. ERD 사용하는 방법 왼쪽 메뉴에 Entity Relation 메뉴 선택 Table 선택 생성 후 테이블명과 컬럼명을 지정 → 컬럼을 추가할 때는 Ctrl + Enter를 누르면 밑으로 컬럼이 추가 됌 릴레이션은 두개 이상의 테이블에서 기준이 되는 테이블에서 연결할 테이블로 선택 릴레이션을 선택하여, 테이블간의 관계를 표시할 수 있음(1:1, 1:N, ..
[ JPA ] 4. Entity Listener
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 2. Query Method 정의 및 실습 3, Entity 기본속성 5.5. Entity Listener Listener: 이벤트를 관찰하고 있다가 발생하면 특정 동작을 진행 1. Entity Listener Annotation @PrePersist: insert method가 호출되기 전 @PreUpdate: merge method가 호출되기 전 @PreRemove: delete method가 호출되기 전 @PostPersist: insert method가 호출된 이후 @PostUpdate: merge method가 호출된 이후 @Pos..
[자바 ORM 표준 JPA 프로그래밍] 2. JPA 시작
Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 패러다임의 불일치 1.3 JPA란 무엇인가? 2. JPA 시작 예제 프로젝트 구조 src / main -java -jpabook/start -JpaMain.java -Member.java -resources -META-INF -persistence.xml pom.xml 2.4 객체 매핑 시작 Member.java @Entity @Table(name = "MEMBER") public class Member{ @Id @Column(name = "ID") private String id; @Column(name = "NAM..
[자바 ORM 표준 JPA 프로그래밍] 1.3 JPA란 무엇인가?
Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 패러다임의 불일치 1.3 JPA란 무엇인가? JPA(Java Persistence API) : 자바 진영의 ORM 표준 기술 ORM(Object-Relational Mapping) : 객체와 관계형 데이터베이스를 매핑하는 기술 → 객체와 테이블 패러다임 불일치 문제를 개발자 대신 해결 1.3.1 JPA 소개 엔터프라이즈 자바 빈즈(EJB) 안에 엔티티 빈이라는 ORM 기술이 포함 → 복잡하고 기술 성숙도도 떨어지며 자바 엔터프라이즈(J2EE) 서버에서만 동작 하이버네이트 오픈소스 ORM 프레임워크가 등장 → EJB보다..
[자바 ORM 표준 JPA 프로그래밍] 1.2 패러다임의 불일치
Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.2 1.2 패러다임의 불일치 애플리케이션이 발전하면 내부 복잡도가 상승 → 복잡도가 증가하면 유지보수하기가 어려움 비즈니스 요구사항을 정의한 도메인 모델도 객체로 모델링하면 객체지향 장점을 활용 가능 → 부모 객체를 상소받거나, 다른 객체를 참조하고 있다면 저장하기 쉽지 않음 → Ex)1. 회원 객체 저장이 필요 2. 회원 객체가 팀 객체를 참조 3. 회원 + 팀을 저장해야 함 (단순 회원 객체만 저장하면 팀 객체를 잃어버리는 문제 발생) 객체와 관계형 데이터베이스는 지향하는 목적이 다름, 둘의 기능과 표현 방법도 다름 ..
[자바 ORM 표준 JPA 프로그래밍] 1.1 SQL을 직접 다룰 때 발생하는 문제점
Reference. 자바 ORM 표준 JPA 프로그래밍 책 목차 및 이전 글 더보기 들어가기 전 JPA 특징, Q&A 1. JPA 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 1.1.1 반복, 반복 그리고 반복 예제1. public class Member { private String memberId; private String name; ... } public class MemberDAO { public member find(String memberId{...} } 기존의 개발 순서 1. 회원 조회용 SQL을 작성한다. SELECT MEMBER_ID, NAME FROM MEMBER M WHERE MEMBER_ID = ? 2. JDBC API, Mybatis를 사용해서 SQL을 실행한다. Resu..
[자바 ORM 표준 JPA 프로그래밍] JPA 특징, Q&A
책에 들어가기 전, 궁굼했던 사항들에 정리 (JPA 특징, Q&A) JPA를 공부하기전 전, 궁굼했던 것들을 글쓴이가 책을 통해 정리한 부분이 있어 먼저 작성한다. 1. JPA 특징 지루하고 반복적인 CRUD SQL을 알아서 처리 - mybatis 쿼리 SELECT name FROM players LIMIT 1 SELECT name, age FROM players LIMIT 1 INSERT INTO players (name, age) VALUES (#{name}, #{age}) UPDATE players SET age = #{age} WHERE name = #{name} DELETE FROM players WHERE name = #{name} - JPA List users = userRepository...