백엔드/JPA
[ JPA ] 5-5. Entity Relations ( N:N @ManyToMany )
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 - 1 2. Query Method 정의 및 실습 - 2 3. Entity 기본 속성 - 3 4. Entity Listener - 4 5-1. Entity Relations - 5 (ERD, 데이터베이스 기준 연관 관계) 5-2. Entity Relations - 5 ( 1:1 @OneToOne ) 5-3. Entity Relations - 5 ( 1:N @OneToMany ) 5-4. Entity Relations - 5 ( N:1 @ManyToOne ) N:N 실무에선 거의 사용되지 않음 @ManyToMany(N:N)는 One(N:1 o..
[ JPA ] 5-4. Entity Relations ( N:1 @ManyToOne )
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 - 1 2. Query Method 정의 및 실습 - 2 3. Entity 기본 속성 - 3 4. Entity Listener - 4 5-1. Entity Relations (ERD, 데이터베이스 기준 연관 관계) 5-2. Entity Relations ( 1:1 @OneToOne ) 5-3. Entity Relations ( 1:N @OneToMany ) 1. N:1 @OneToMany에서 참조하는 값은 One에 해당하는 PK값을 Many쪽에서 FK로 가짐 → UserHistory 테이블에서는 User에 Id값을 가짐 일반적인 상황에서는 ..
[ JPA ] 5-3. Entity Relations ( 1:N @OneToMany )
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 2. Query Method 정의 및 실습 3. Entity 기본 속성 4. Entity Listener 5-1. Entity Relations (ERD, 데이터베이스 기준 연관 관계) 5-2. Entity Relations ( 1:1 @OneToOne ) 1. 속성 @OneToMany 속성 fetch: 트랜잭션과 관련된 속성 ( FetchType.EAGER 변경 ), 설정하지 않으면 오류 발생 @OneToMany(fetch = FetchType.EAGER) private List userHistories = new ArrayList(); ..
[ 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..
[ JPA ] 3. Entity 기본속성
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 2. Query Method 정의 및 실습 1. Entity Annotation @Entity: JPA에서 관리하는 도메인이라는 것을 설정 @Id: PK역할을 하며 필수조건 @GeneratedValue: - 어노테이션 안에 GenerationType strategy() default AUTO; 중요 - 트랜잭션이 종료되기 전, autoIncrese를 통해 아이디 값을 사전에 가져온다. commit 되지 않고, 로직이 종료되어도 키는 증가된다. 1. IDENTITY: Mysql, Mariadb 2. SEQUENCE: Oracle, Postgr..
[ JPA ] 2. Query Method 정의 및 실습
Reference. 한 번에 끝내는 Java/Spring 웹 개발 마스터 초격차 패키지 Online 이전 글 더보기 1. Repository interface 메서드 1. 쿼리 반환 유형 예를 들어, 아래와 같이 입력이 가능 [이미지. Table 11]를 참조하면 된다. public interface UserRepository extends JpaRepository{ User findByName(String name); Optional findByName(String name); List findByName(String name); Set findByName(String name); ... } 2. 쿼리 주제 키워드 "findUserBy-"로 사용 가능. 그러나 Repository자체에 User를 선언하..