분류 전체보기 170

11. 스프링 / 영속성 전이

소유자가 하나일 때는 casecaseType.ALL로 설정해서 관련된 테이블에 정보를 다 넣어도 상관이 없음. 근데 이제 하나의 테이블만 연관된 것이 아닌 여러개가 하나의 테이블에 접근하고 소유자가 하나가 아닐 때는 사용하면 안됌~ => 중구난방으로 쿼리가 들어감 ㅠㅠ 예시) @OneToMany(mappedBy = "parent", cascade = CascadeType.ALL,orphanRemoval = true) private List childList = new ArrayList(); 기본값 타입 JPA는 두개의 데이터 타입으로 분류가 가능하다 1. 엔티티 타입 @Entity로 정의하는 객체 데이터가 변해도 식별자로 지속해서 추적 가능 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능..

Spring 2021.07.20

10. 스프링 / 실전예제 4. 상속관계 매핑

이걸 햇다옹! 아 귀찮아 ㅎㅎ 프록시 Member를 조회할 때 Team도 함께 조회해야 하나? 이에 대해 해결하려면 프록시를 제대로 이해해야 한다! 프록시의 특징 실제 클래스를 상속 받아서 만들어짐 실제 클래스와 겉 모양이 같다. 사용하는 입장에선느 진짜 객체인지 프록시 객체인지 구분하지 않고 사용하면 된다(이론상...) 프록시 객체는 실제 객체의 참조(target)를 보관 프록시 객체를 호출하면 프록시 객체는 실제 객체의 메소드 호출 즉시 로딩과 지연 로딩 지연 로딩 LAZY를 사용해서 프록시로 조회 이것은 이론적인것이고 실무에서는 무조건 극소수를 제외하고 무조건 지연로딩으로 바른다! JPQL Fetch 조인이나, 엔티티 그래프 기능을 사용해라! 즉시 로딩은 상상하지 못한 쿼리가 나간다.

Spring 2021.07.20

8. 스프링 / 2021-07-18 (다대다 [N:M])

이 부분은 편히 공부해도 된다! 그냥 보라네! 이렇게 쓰면 안된다고 한다. @ManyToMany 사용을 해서 지정 가능 근데 들어가기 전에 알아야 할 것은 쓰지 말라는거임 ! ㅋㅋ 여기서 테이블에 관한 이야기인데 ORDER 테이블으 Member_ID 랑 Product_ID를 참조해서 복합키로 사용하고 있다. 처음 설계상에서는 이렇게 하면 깔끔하고 장점이 많은데 어플리케이션이 이제 업데이트가 되고 수정이 되는 과정에ㅐ서 받아온 FK가 변동될 수 도 있다. 그렇기에 ORDER 테이블에 그 테이블 만의 PK를 별도로 생성을 해주면 후에 관리를 하는데 유용하다고 해서 Teacher는 이렇게 많이 쓴다고 한다. 그러면 이제 실전 예제 3으로 한번 넘어가보자! 실전 예제 3 - 다양한 연관관계 매핑 근데 그냥 보고..

Spring 2021.07.18

7. 스프링 / 2021-07-18 (연관관계 매핑 )

고려사항 3가지 1. 다중성 (@OneToMany, @ManyToOne, @OneToOne, @ManyToMany) 2. 단방향, 양방향 3. 연관관계의 주인 package jpabook.jpashop.domain; import javax.persistence.*; import java.util.ArrayList; @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String name; @ManyToOne @JoinColumn(name = "TEAM_ID") // 우선 ManyToOne 그러니까 //Member가 여러명이고 ..

Spring 2021.07.18

6. 리눅스 / 2021-07-17 (whereis , $PATH / process )

사실 우리가 쓰는 흔한 명령어인 ls 혹은 rm도 어딘가에 파일 경로안에 위치해 있고 그것을 우리는 불러서 쓰는 것 뿐이다. 그래서 whereis ls를 하면 그 파일의 위치를 출력해준다. man ls를 하면 ls 에 대한 상세한 정보를 알려준다. 근데 뭔가 이상하지 않은가? 보통 파일을 실행하려면 그 저장된 경로에 가서 실행을 하는데 ls 의 경우에는 어디에서든지 실행해도 문제가 없다.! ' 그것은... PATH설정 때문이다. ($PATH) echo $PATH하니까 뭐가 많네! 25강 : process란 무엇인가? SSD, HDD => 우리가 흔히 아는 저장장치 (Storage) / 가격 낮고, 용량 크고, 속도 낮다 RAM => memory / 가격 높고, 용량 작고, 속도 빠르다. cpu => 중앙..

6. 스프링 공부 / 양방향 연관관계와 연관관계의 주인

단방향 매핑에서 양방향 매핑으로 한단계 상승! 전에 내용에서 본 단방향 관계와 양방향 관계는 테이블 구조로 보면 전혀 다른게 없다. 왜? 테이블을 생각해보면 외래키로 조인이 가능하기 때문임 서로 조인으로 왓다갓다 하면 끝이기 때문이다 그런데 class의 경우에는 그게 안됨!~ 그래서 각자 안에 Member.class에는 Team을 넣어주고, Team.class안에는 Member를 넣어준다. 근데 Team에는 구성원이 여러명이라면 List로 넣어준거다. //=======================Team.class에 팀 하나당 여러명의 멤버가 있으니 //=======================OneToMany를 members에 붙여줌. package jpabook.jpashop.domain; impor..

Spring 2021.07.15

5. 스프링 공부 / 2021-07-15 (단방향 연관 관계)

오늘 공부의 목표란다! 연관관계가 필요한 이유 => 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다. 예제 시나리오 - 회원과 팀이 있다 - 회원은 하나의 팀에만 소속될 수 있다. - 회원과 팀은 다대일 관계다. //==============Member.class package jpabook.jpashop.domain; import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME" , nullable = false) private String username; @Column(name..

Spring 2021.07.15

4. 스프링 공부 / 2021-07-14 (실전1 - 요구사항 분석과 기본 매)

그러면 실제로 어떻게 쓰이는지 한번 보도록 하자 요구사항 분석 회원은 상품을 주문할 수 있다. 주문 시 여러 종류의 상품을 선택할 수 있다. 기능 목록 - 회원 기능 회원 등록 회원 조회 - 상품 기능 상품 등록 상품 수정 상품 조회 - 주문 기능 상품 주문 주문내역조회 주문취소 위와 같은 것을 이제 개발자의 입장에서 class를 만드는 것이랑 DA입장에서 만드는 것은 좀 차이가 있다. Order테이블에서 이제 Member정보를 꺼내고 싶다면 Order.class안에 Member를 선언할 것이다. 근데 JpaMain.class에서 그러면 어떻게 보이냐? package jpabook.jpashop.domain; import javax.persistence.*; import java.time.LocalDat..

Spring 2021.07.14

3. 스프링 공부 / 2021-07-14 (필드와 컬럼 매핑 ~)

필드와 컬럼 매핑 package hellojpa; import javax.persistence.*; import java.util.Date; @Entity @Table(uniqueContraints = "testing") //위에서 처럼 unique 키를 설정 시 이름을 선언 가능 public class Member { @Id // pk Mapping private long id; @Column(name = "name", insertable = true, updatable = true,nullable = false, unique = true, length = 10 , columnDefinition = "varchar(100) default 'EMPTY'" ) // column name 설정 //inser..

Spring 2021.07.14