Error

[JPA, Mysql - 에러 해결] Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

chea-young

1. 에러 메시지

Caused by: java.sql.SQLSyntaxErrorException: 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group' at line 1


2. 원인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Entity
@Getter
@Setter
public class Group extends BaseTimeEntity{
    @Id
    @GeneratedValue
    @Column(name = "group_id")
    private Long id; //  id
 
    private String title; // 주제
 
    @OneToMany(mappedBy = "group")
    private List<Contents> contents = new ArrayList<>();
 
    //==연관관계 메서드==//
    public void setContents(Contents contents) {
        this.contents.add(contents);
        contents.setGroup(this);
    }
}
 
 

`group`이라는 단어가 mysql에서 사용되고 있는 예약어이기 때문에 에러가 났던 것이었다. 

 


3. 해결

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Entity
@Getter
@Setter
@Table(name = "groups"//추가
public class Group extends BaseTimeEntity{
    @Id
    @GeneratedValue
    @Column(name = "group_id")
    private Long id; //  id
 
    private String title; // 주제
 
    @OneToMany(mappedBy = "group")
    private List<Contents> contents = new ArrayList<>();
 
    //==연관관계 메서드==//
    public void setContents(Contents contents) {
        this.contents.add(contents);
        contents.setGroup(this);
    }
}
 
 

 

mysql에서 예약어로 테이블이 생성이 될 수 없는 것이기 때문에 4줄에 추가한 것처럼 mysql에서 사용하고 있지 않은 단어로 해당 테이블이 생성한다고 선언해주면 된다.


참고 사이트

- https://dev-nomad.com/82