springboot

error-[errno: 150] "foreign key constraint is incorrectly formed"

주다애 2023. 8. 6. 19:41

상황 : mariaDB를 사용하여 테이블 구축. JPA의 연관관계에서 외래키 에러 발생

 

해결 : @Column(name = "user_id") 작성

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "user_id")
    private Long id;
    
 }
@JoinColumn(name = "user_id")
@ManyToOne
private User user;

@GeneratedValue(strategy = GenerationType.AUTO) 어노테이션과 함께 @Id 어노테이션만 사용하여 엔티티의 기본 키를 지정하는 경우, user 테이블의 기본 키 컬럼 이름은 "id"가 된다.

 

그러나 @Column(name = "user_id")  어노테이션을 추가하면, id 필드를 "user_id"라는 이름의 컬럼으로 매핑하게 된다.

이렇게 컬럼 이름을 명시적으로 지정해주면, 해당 이름으로 컬럼이 생성되어 테이블이 생성되는 과정에서 충돌이 발생하지 않는다.