본문 바로가기

Spring

연관 관계 설정.

반응형

1) 각 엔티티에 해당하는 테이블 만들기.

 

2) Workbench 이용해서 foreign key 지정

 

3) @OneToMany라면 Many에 해당하는 쪽에서 One의 키를 가지고 있으므로

One의 객체들을 먼저 다 채워 주고, Many에서 그 객체를 찾아서 set 해준다.

 

4) read하는 방법은 가령 User로 부터 Category의 정보를 얻고자 한다면

User Entity -> OrderGroup -> OrderDetail -> Item -> Partner -> Category 이런식으로 타고 갈 수 있음.

 

한 명의 User가 여러개의 장바구니를 가지는데 장바구니 하나 당 여러개의 주문 내역이 있고

주문 내역 하나에는 하나의 아이템이 존재 ( 1 : N - N : 1) 이므로, 그 하나의 아이템에는 한명의 파트너가 존재

(한 명의 파트너가 여러개의 아이템을 갖는 것이지, 하나의 아이템은 한명의 파트너 뿐임.)

그리고 한 명의 파트너에게는 하나의 카테고리가 존재.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
@Test
    @Transactional //테스트 시에만 발생하는 오류이므로 Transactional 어노테이션 추가
    public void read(){
 
        User user = userRepository.findByPhoneNumber("010-2222-1111");
 
 
 
 
        user.getOrderGroupList().stream().forEach(orderGroup ->{
 
 
            System.out.println("------------주문 묶음---------------");
            System.out.println("묶음 가격 "+orderGroup.getTotalPrice());
 
            System.out.println("------------주문 상세--------------");
            orderGroup.getOrderDetailList().stream().forEach(orderDetail ->
            {
 
                System.out.println("주문 상품" + orderDetail.getItem().getName());
 
                System.out.println("주문 상태" + orderDetail.getStatus());
                System.out.println("아이템 파트너" + orderDetail.getItem().getPartner().getName());
            });
 
 
        });
 
 
        Assertions.assertNotNull(user);
 
 
 
 
    }
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs
반응형

'Spring' 카테고리의 다른 글

@Builder, @Accessors  (0) 2019.11.14
@Configuration , @Create~ , @LastModified~  (0) 2019.11.14
다양한 find 지원.  (0) 2019.11.10
@OneToMany (fetch type) , @ManyToOne  (0) 2019.11.10
ERD  (0) 2019.11.10