본문 바로가기

전체 글275

[JPA] 연관관계 매핑 - 양방향 연관관계 ※ 인프런 강의 김영한님의 「자바 ORM 표준 JPA 프로그래밍」을 학습한 내용을 정리한 글입니다. 양방향 연관관계와 연관관계의 주인 이전 글에서 회원에서 팀을 조회할 수 있는 다대일 단방향 매핑을 정리하였습니다. 반대로 팀에서 회원에 접근하려면 어떻게 해야 할까요? 이번에는 양방향 연관관계 패밍을 통해 알아보도록 하겠습니다. ✅ 양방향 객체 연관관계에서 Team 객체에 List 형 members가 추가되었다! 회원과 팀은 다대일 관계, 반대로 팀에서 회원은 일대다 관계로 여러 데이터를 한꺼번에 연관관계를 맺으려면 List와 같은 컬렉션을 사용해야 함 ❗❓ 테이블 연관관계는 단방향 연관관계일 때와 똑같지 않은가?! 테이블 연관관계는 외래키 하나로 양방향으로 조회 가능 ( = DB 테이블은 JOIN으로 모.. 2022. 8. 8.
[JPA] 연관관계 매핑 - 단방향 연관관계 ※ 인프런 강의 김영한님의 「자바 ORM 표준 JPA 프로그래밍」을 학습한 내용을 정리한 글입니다. 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 방향(Direction) : 엔티티의 관계가 어느쪽을 참조하고 있는지 단방향 : 엔티티의 관계가 한 쪽만 참조하는 것 ex) 회원 → 팀, 팀 → 회원 양방향 : 엔티티의 관계가 양쪽 모두 참조하는 것 ex) 회원 ↔ 팀 다중성(Multiplicity) : 연관 관계가 있는 여러 개의 클래스가 있을 때 실제로 연관을 가지는 객체의 수 다대일(N:1) ex) 회원(N) : 팀(1) 일대다(1:N) ex) 팀(1) : 회원(N) 일대일(1:1) 다대다(N:N) 연관관계의 주인(Owner) : 객체가 양방향 연관관계일 때 테이블의 외래.. 2022. 8. 7.
[BAEKJOON] 스위치 켜고 끄기 학생수만큼 받은 번호에 따라 스위치 처리 남학생일 경우 : 받은 번호의 배수인 스위치 모두 변경 (0 → 1 , 1 → 0) 여학생일 경우 : 받은 번호를 중심으로 상태가 대칭되는 스위치 모두 변경 (0 → 1 , 1 → 0) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BaekJoon1244 { static int N, student; static int[] arr; public static void main(String[] args) throws IOException { BufferedReader .. 2022. 8. 2.
[JPA] 엔티티 매핑 ※ 인프런 강의 김영한님의 「자바 ORM 표준 JPA 프로그래밍」을 학습한 내용을 정리한 글입니다. 1️⃣ 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X 속성: name JPA에서 사용할 엔티티 이름을 지정한다. 기본값: 클래스 이름을 그대로 사용 같은 클래스 이름이 없으면 가급적 기본값을 사용하도록 한다. @Entity(name="Member") // 클래스명과 동일 public class Membe.. 2022. 7. 28.
[BAEKJOON] 연구소 0 - 안전 지역 1 - 벽 2 - 바이러스 우리의 목표는 3개의 벽을 세워 최대한 바이러스가 퍼지지 않게 해야 한다. 먼저 벽을 세울 수 있는 안전 지역 3 곳을 '조합' 하자. 조합이 이루어졌을 때마다 바이러스가 모두 퍼졌다 가정하고, 남은 안전 지역의 수를 세어 최댓값을 반환하면 된다. 문제 풀이 팁 1. 연구소 초기 상태를 입력 받아 저장할 때 바이러스의 위치, 안전 지역 위치를 각각의 리스트에 담는다. → 벽을 세울 위치 3 곳을 조합할 때 안전 지역(0)인지 확인하는 조건문 없어도 됨! 리스트에 담긴 위치에서만 3곳 조합하면 됨 2. 벽을 세울 위치 3곳을 조합했을 때의 연구소 상태에서 바이러스를 퍼뜨려본다. 그리고 남은 안전 지역 수를 센다. 안전 지역 수의 최댓값을 갱신한다. 1️⃣ 벽을 .. 2022. 7. 21.
[JPA] 준영속 상태 ※ 인프런 강의 김영한님의 「자바 ORM 표준 JPA 프로그래밍」을 학습한 내용을 정리한 글입니다. 영속에서 준영속으로 변할 수 있는 상태가 뭐가 있을까? 영속 상태 조회할 때 1차 캐시에서 데이터 찾을 수 있음. JPA가 관리하는 상태가 됨 준영속 상태 영속성 컨텍스트가 관리하는 영속 상태의 엔티티가 영속성 컨텍스트에서 분리(detached)된 것 준영속 상태의 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용할 수 없다. 준영속상태로 만드는 방법 em.detach(entity) : 특정 엔티티만 준영속 상태로 전환한다. em.clear() : 영속성 컨텍스트를 완전히 초기화한다. em.close() : 영속성 컨텍스트를 종료한다. 엔티티를 준영속 상태로 전환 : detach() // 영속 Member .. 2022. 7. 18.