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에서 사용하고 있지 않은 단어로 해당 테이블이 생성한다고 선언해주면 된다.
참고 사이트