N 대 1 관계

금은체리·2023년 11월 17일
1

Spring

목록 보기
30/49

@ManyToOne

  • @ManyToOne 애너테이션은 N 대 1 관계를 맺어주는 역할
  • 음식 Entity와 고객 Entity가 N대 1 관계라 가정

단방향 관계

  • 음식 Entity가 N의 관계로 외래 키의 주인

    • 음식
    @Entity
    @Table(name = "food")
    public class Food {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
        private double price;
    
        @ManyToOne
        @JoinColumn(name = "user_id")
        private User user;
    }
    • 고객
    @Entity
    @Table(name = "users")
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
    }

양방향 관계

  • 양방향 참조를 위해 고객 Entity에서 Java 컬렉션을 사용하여 음식 Entity 참조

    • 음식 Entity가 N의 관계로 외래 키의 주인
    • 음식
    @Entity
    @Table(name = "food")
    public class Food {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
        private double price;
    
        @ManyToOne
        @JoinColumn(name = "user_id")
        private User user;
    }
    • 고객
    @Entity
    @Table(name = "users")
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
    
        @OneToMany(mappedBy = "user")
        private List<Food> foodList = new ArrayList<>();
    }
profile
전 체리 알러지가 있어요!

0개의 댓글