‡๐Ÿ‘ฉ‍๐Ÿ’ป ‡/ºSpring

์—ฐ๊ด€๊ด€๊ณ„ ์™ธ๋ž˜ํ‚ค ์ €์žฅํ•  ๋•Œ Entity๋กœ ํ•ด์ฃผ๋Š” ์ด์œ 

Trudy | ์†ก์—ฐ 2024. 1. 3. 15:12

์˜๋ฌธ์ 

@ManyToOne์˜ ๋‹ค๋Œ€์ผ ๊ด€๊ณ„์—์„œ ์™ธ๋ž˜ํ‚ค๋ฅผ ์ €์žฅํ•ด ์ค„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด์˜ Entity ๊ทธ ์ž์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์ดํ•ด๋˜์ง€ ์•Š์•˜๋‹ค. 

@Entity
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class OrderedProduct {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Integer id;

    @ManyToOne
    @JoinColumn(name="Product_id")
    Product product;

    @ManyToOne
    @JoinColumn(name="Orders_id")
    Orders order;
}

 

public void createOrder(String impUid) {
    ordersRepository.save(Orders.builder()
                    .impUid(impUid)
                    .user(User.builder().id(1L).email("test01@test.com").build())
            .build());
    orderedProductRepository.save(OrderedProduct.builder()
                    .order(Orders.builder().build())
                    .product(Product.builder().id(1).build())
            .build());
}

 

์œ„์™€ ๊ฐ™์ด ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„ํ–ˆ๋Š” ๋ฐ,

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด Orders์˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜์ง€๋งŒ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์€ Orders์˜ ๊ธฐ๋ณธํ‚ค์ธ orders_id ๋ฟ์ด๊ณ ,

Product์˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜์ง€๋งŒ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์€ Product์˜ ๊ธฐ๋ณธํ‚ค์ธ product_id ๋ฟ์ด๋‹ค. 

์•„์˜ˆ ์ €์žฅํ•ด์ค„ ๋•Œ ์™ธ๋ž˜ํ‚ค๊ฐ’๋งŒ ์ €์žฅํ•˜๋Š” ๊ฒŒ ํšจ์œจ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค. 

 

์ด์œ  

์ด์œ ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด, JPA๋Š” ๊ธฐ๋ณธํ‚ค๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. 

์œ„์—์„œ ์ƒ๊ฐํ•œ ๋ฐฉ์‹์€ ๋„ˆ๋ฌด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ ์œผ๋กœ ์ ‘๊ทผํ•ด์„œ ์ƒ๊ฐํ–ˆ๋˜ ๊ฑฐ๋‹ค. 

JPA๋Š” ๊ธฐ๋ณธํ‚ค๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ๋งคํ•‘์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค. 

๋”ฐ๋ผ์„œ ๊ฐ์ฒด์™€ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๋งคํ•‘ ๊ทœ์น™์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์ ์ ˆํ•œ ๊ธฐ๋ณธํ‚ค ์ „๋žต์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.