객체 구조테이블 구조는 이전과 완전히 동일하고, 객체 구조만 바뀌었다. 코드@OneToMany(mappedBy = "member") private List orders;@ManyToOne @JoinColumn private Member member; @OneToMany(mappedBy = "order") private List orderItems;@ManyToOne @JoinColumn private Order order; @ManyToOne @JoinColumn private Item item; Uploaded by N2T(23.06.11 16:49)에 작성된 글 입니다.
연관관계가 필요한 이유@Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; … } @Entity public class Team { @Id @GeneratedValue private Long id; private String name; … } === //팀 저장 Team team = new Team(); team.setName("TeamA"); em.persist(team); //회원 저장 Member member = new Member(); member.setName("..
요구사항 분석회원은 상품을 주문할 수 있다.주문 시 여러 종류의 상품을 선택할 수 있다. 도메인 모델 분석회원과 주문의 관계: 회원은 여러 번 주문할 수 있다(일대다)주문과 상품의 관계: 주문을할 때 여러 상품을 선택할 수 있다. 반대로 같은 상품도 여러 번 주문될 수 있다. 주문상품이라는 모델을만들어서 다대다 관계를 일대다, 다대일 관계로 물어냈다. 테이블 설계 엔티티 설계와 매핑구현@Entity public class Member { @Id @GeneratedValue private Long id; private String name; private String city; private String street; private String zipcode; }@Entity @Table(name = "O..
객체와 테이블 매핑@EntityJPA가 관리하는 크래스를 Entity라고 하고, 이를 등록하는 에너테이션이다.기본 생성자(파라미터가 없는 public 또는 protected)가 필수다.final class, enum, interface, inner class에 사용 불가능하다.저장할 filed에 final 사용이 불가능하다. @Table엔티티와 매핑할 테이블을 지정한다.속성기능기본값name매핑한 테이블 이름엔티티 이름 사용catalogDB catalog 매핑schemaDB schema 매핑uniqueConstrains(DDL)DDL 생성 시에 유니크 제약 조건 생성데이터 베이스 스키마(DDL) 자동 생성애플리케이션 실행 시점에 DB TABLE을 자동으로 생성시켜준다.이로써 SQL을 독립적으로 개발할 수 ..
토글 제목이 글은 토글 테스트입니다.토글 안에서 코드를 작성 합니다.토글 제목 2이 글은 nested 토글 테스트 입니다.토글의 토글 안에서 코드를 작성합니다.여전히 토글 안 입니다.토글 밖 입니다. Uploaded by N2T(23.06.07 01:50)에 작성된 글 입니다.
# JPA 구동방식 EntityManagerFactory: 한 Application에 무조건 1개만 존재한다. EntityManager: 요청이 들어올 때 마다 하나씩 생성된다.(Transaction 단위로 생존하기 때문에 쓰레드간에 공유X) Transaction: 매 수정/조회 마다 Trsanaction사이에서 쿼리가 발생해야한다. # JPA 실습 ## 기본 세팅 public static void main(String[] args){ //SpringApplication.run(HellojpaJpa1Application.class, args); EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager ..
# Object와 RDB의 패러다임 불일치 ## 1. 상속 Album을 조회하려면? 각각의 테이블에 따른 조인 SQL 쿼리 작성, 각각 객체 생성… → 개발 코드보다 SQL코드가 더 커지게 된다. 자바 컬렉션에서 조회하려면? list.add(album); Album album = list.get(album); Item item = list.get(albumId); → 매우 간단하다. 그럼, 자바의 컬렉션처럼 쓸 수 없을까..? ## 2. 연관관계 테이블에 맞춰서 모델링 할 경우 class Member { String id; Long teamId; Sring username; } class Team { Long id; String name; } 객체지향 다운 모델링 할 경우 class Member { St..
요구사항 분석상품 도메인 모델상품 ID상품명가격수량 상품 관리 기능상품 목록상품 상세상품 등록상품 수정 서비스 제공 흐름디자이너: 요구사항에 맞도록 디자인하고, 디자인 결과물을 웹 퍼블레셔에게 넘겨준다.웹 퍼블리셔: 디자이너에서 받은 디자인을 기반으로 HTML, CSS를 만들어 개발자에게 제공한다.백엔드 개발자: 디자이너, 웹 퍼블리셔를 통해서 HTML 화면이 나오기 전까지 시스템을 설계하고, 핵심 비즈니스 모델을 개발한다. 이후 HTML이 나오면 이 HTML을 뷰 템플릿으로 변환해서 동적으로 화면과 웹 화면의 흐름을 제어한다. 상품 도메인 개발@Getter @Setter public class Item { private Long id; private String itemName; private Inte..