(@OneToMany 단방향에서 따로 조인 설정을 넣지 않으면 단방향 @JoinTable이 적용)
@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "userInfo")
public class UserInfo {
@Id // Primary key
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(cascade = CascadeType.ALL)
private List<Portfolio> portfolios_id;
}
@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "portfolio")
public class Portfolio {
@Id // Primary key
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
}
별도 테이블 생성
many쪽에 join칼럼 추가됨 -> one에서 @JoinColumn을 넣어도 컬럼은 many에 추가됨 -> 외래키가 다른 테이블에 생성됨 -> update 쿼리가 추가적으로 발생
@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "userInfo")
public class UserInfo {
@Id // Primary key
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "info_id")
private List<Portfolio> portfolios;
}
userInfo_id 컬럼이 Portfolio 테이블(Many쪽)에 들어있어야 함.
UserInfo 테이블에 portfolio_id 컬럼이 있을 수 없음 -> 데이터 하나씩만 insert 가능하기 때문
따라서 필요없어진 UserInfo 테이블을 지우고 User 테이블과 Portfolio 테이블을 양방향으로 매핑하는 방법 선택!