분류 전체보기 954

23. 실전3 다양한 연관관계 매핑

여러가지 연관관계를 표현해 보기 위해 만듦. 다대다 쓰지 말라고 했지만 그래도 JPA 공식 스팩이라 해본다고 함. ERD(Entity Relationship Diagram) 보면 카테고리와 아이템은 사실상 Item이 다 카테고리가 1 관계가 맞는 듯. 저걸 토대로 객체 필드를 짜 보면 member Long id String name String city String street String zipcode orders Long id Member member Delivery delivery LocalDateTime orderDate OrderStatus status delivery Long id String city String street String zipcode DeliveryStatus status ..

JPA/JPA 기본 2023.10.25

21. 1 : 1 연관관계

주인 테이블이나 대상 테이블 아무대나 선택해서 외래키 넣어도 됨. 외래키에 DB 유니크 제약조건 추가해야 함. 하긴. 1:1이니 고유해야 함. 예를 들자면 회원의 사물함. 1:1 관계 여기선 MEMBER테이블에 외래키를 넣었는데, 어디에 넣든지 상관 없음. 다대일과 유사하기도 함 @Entity public class Member { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name="USERNAME", nullable = false) private String name; @OneToOne @JoinColumn(name = "LOCKER_ID") private Locker locker; } 이렇게 추가. @Entity..

JPA/JPA 기본 2023.10.25

20. 1:N 일대다

1이 연관관계의 주인일 경우. 테이블이 아니라 객체상의 경우를 말하는 거다. 근데 이 관계는 권장하지 않는다. 일단, 이 모델은 거의 사용하지 않는다고 보면 된다. 물론 객체 입장에서는 team이 member들을 가지고 있는거니 좋아보이긴 하지만.. 또 뭐 Member입장에서 team을 알고 싶지 않다 그럴 수도 있고. DB상에서는 무조건 다 쪽에 외래키가 있다. 즉 다쪽인 MEMBER에 외래키. 그러면 1 쪽(team)을 연관관계 주인으로 보면, 만약 팀 변경 시 Team을 통해서 다른 테이블인 MEMBER 테이블의 외래키를 update 처리 해 줘야 한다. 즉, 다른 테이블 이기 때문에, (그렇다고 Member가 주인이 아니라 Member로 반영도 못하고) 결국 Team으로 저장을 해야 하는데, 근데..

JPA/JPA 기본 2023.10.24

19. N : 1 다대일, 다양한 연관관계

연관관계는 N : 1 1 : N 1 : 1 N : M 이렇게 있는데, 이번에는 N : 1을 알아볼 것이다. 즉, N이 연관관계 주인일 경우 연관관계 매핑 시 고려사항은 다중성 단방향, 양방향 양방향 일 시 연관관계 주인 다중성 @ManyToOne @OneToMany @OneToOne @ManyToMany 이런 다중성 다 JPA가 제공 JPA의 애노테이션은 거의 전부 DB와 매핑하기 위해 있다고 생각하면 됨. DB관점에서 다중성을 보면 됨. 다중성이란 일대다 같이 그런 관계를 말하는 거임. 뭐를 다로 해야 하고 뭐를 일로 해야 할 지. 근데, @ManyToMany 다대다는 안 씀. 쓰면 안됨. @ManyToOne 많이 씀 @OneToMany 필요하다고 느끼면 씀(양방향일때 쓰는 듯) @OneToOne 가끔..

JPA/JPA 기본 2023.10.24

18. 실전2 객체구조를 외래키에서 참조로

이게 테이블 구조고, 객체도 이거와 별반 차이가 없었다. 우선은 단방향부터 잘 매핑하고, 그 후 필요하면 양방향 하겠다. 먼저, Member @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="MEMBER_ID") private Long id; private String name; private String city; private String street; private String zipcode; } 바뀐 것은 없다. 그 다음 Order. 얘는 이제 외래키에서 참조로 바꿔야 한다. 그리고 다대일매핑이다. @Entity @Table(name="ORDERS") public class O..

JPA/JPA 기본 2023.10.24

7. 함수형 컴포넌트

요새는 기본을 함수형 컴포넌트로 쓴다고 함. import React, { useState } from 'react' function CounterFunc(props){ const [number, setNumber] = useState(Number(props.number)); const increase = ()=>{ setNumber(number + 1); } const decrease = ()=>{ setNumber(number - 1); } return( 주문 수량은? 수량 : {number} +1 -1 ) } function FuncComp(){ return( ) } export default FuncComp; 전 것의 함수형 컴포넌트 버전. 먼저, 저렇게 props로 넣어준 속성들 받아올 수 있고,..

React 2023.10.23

6. 클래스 컴포넌트에 값 할당, 함수, 버튼에 함수 바인딩, state

import { Component } from "react"; class Counter extends Component { constructor(props) { super(props); this.state = { number: Number(props.number), }; } increase = ()=>{ this.setState({ number : this.state.number+1 }); } decrease = ()=>{ this.setState({ number : this.state.number-1 }); } render() { // console.log(this.state); return ( 사용 상품 수량 수량 : {this.state.number} +1 -1 ); } } 여기 보면 생성자에서 p..

React 2023.10.23

5. 한 컴포넌트의 최상위 요소

Hello 이렇게 하면 뭐랄까.. 그러니까, Hello React V18 이거는 곁에 한번 감쌈. 실제로 브라우저에서 랜더링 될 때 이렇게 감싸서 h1 나오는 거임. class가 아니고 className인 이유는 js의 class랑 중복되서 저러는 듯. 근데, Hello 이렇게 하면 곁에 감싸는 거 없이 들어가는 거임. Hello 저 Fragment로 감싼거랑 똑같은 거임. 위에는 축약임. 그냥 암거나 쓰면 됨.

React 2023.10.23

4. 한 js에서 컴포넌트 2개

import { Component } from "react"; class Counter extends Component { constructor(props){ super(props); this.state = { number : 1 } } render() { return ( 사용 상품 수량 수량 : {this.state.number} +1 -1 ); } } class ClassComp extends Component { render() { return ( 클래스형 컴포넌트 ); } } export default ClassComp; 뭐랄까 1회용? 딱 그냥 여기서만 이 컴포넌트 쓰겠다, 짝꿍이다 하면 분리하지 말고 이렇게 하는 것도 괜찮을 듯. 그냥 똑같이 호출하면 됨. 예를 들자면 import가 저 Cou..

React 2023.10.23