0
나는 내 프로젝트를 시작으로 내 데이터베이스를 채우기 위해 노력하고있어 :SQL 오류 동안
봄 부팅
H2 포함 된 데이터베이스를
스크립트입니다 :
INSERT INTO 'VET' VALUES (1, 'AAAA', 'BBBB');
여기에 자바에서 내 실체 :
@Entity
public class Vet extends BaseClass{
// @Id
// @GeneratedValue
// private int id;
@NotNull(message="{NotNull}")
@Size(min=2,max=15,message="{Size}")
@Column(name = "first_name")
private String firstName;
@NotNull(message="{NotNull}")
@Size(min=2,max=15,message="{Size}")
@Column(name = "last_name")
private String lastName;
...
}
@MappedSuperclass
public class BaseClass {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
나는 봄을 시작으로,이 스택 트레이스입니다 :
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "INSERT INTO 'VET'[*] VALUES (1, 'AAAA', 'BBBB')"; expected "identifier"; SQL statement:
INSERT INTO 'VET' VALUES (1, 'AAAA', 'BBBB') [42001-192]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) ~[h2-1.4.192.jar:1.4.192]
at org.h2.message.DbException.getSyntaxError(DbException.java:205) ~[h2-1.4.192.jar:1.4.192]
at org.h2.command.Parser.readIdentifierWithSchema(Parser.java:3130) ~[h2-1.4.192.jar:1.4.192]
at org.h2.command.Parser.readTableOrView(Parser.java:5365) ~[h2-1.4.192.jar:1.4.192]
at org.h2.command.Parser.parseInsert(Parser.java:1053) ~[h2-1.4.192.jar:1.4.192]
at org.h2.command.Parser.parsePrepared(Parser.java:413) ~[h2-1.4.192.jar:1.4.192]
at org.h2.command.Parser.parse(Parser.java:317) ~[h2-1.4.192.jar:1.4.192]
at org.h2.command.Parser.parse(Parser.java:289) ~[h2-1.4.192.jar:1.4.192]
at org.h2.command.Parser.prepareCommand(Parser.java:254) ~[h2-1.4.192.jar:1.4.192]
at org.h2.engine.Session.prepareLocal(Session.java:560) ~[h2-1.4.192.jar:1.4.192]
at org.h2.engine.Session.prepareCommand(Session.java:501) ~[h2-1.4.192.jar:1.4.192]
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1202) ~[h2-1.4.192.jar:1.4.192]
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:170) ~[h2-1.4.192.jar:1.4.192]
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:158) ~[h2-1.4.192.jar:1.4.192]
at org.springframework.jdbc.datasource.init.ScriptUtils.executeSqlScript(ScriptUtils.java:473) ~[spring-jdbc-4.2.7.RELEASE.jar:4.2.7.RELEASE]
... 67 common frames omitted
물론 스크립트의 이름 data.sql이고 그것의 위치 resources 폴더에있는 경우 스택 추적에 따라 스크립트를 분명히 읽는 것입니다.
INSERT INTO VET('id', 'first_name', 'last_name') VALUES (1, 'AAAA', 'BBBB');
그 오류의
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "INSERT INTO VET('id'[*], 'first_name', 'last_name') VALUES (1, 'AAAA', 'BBBB')"; expected "identifier"; SQL statement:
INSERT INTO VET('id', 'first_name', 'last_name') VALUES (1, 'AAAA', 'BBBB') [42001-192]
하지만 : 나는 식별자
//// 편집
그래서 나는 이런 식으로 뭔가를 시도 확인과 부분을 이해하지 못하는 같이 가자.
INSERT INTO VET VALUES (1, 'AAAA', 'BBBB');
빌드 성공
교육 목적으로 만 왜 첫 번째 옵션에서 오류가 발생합니까?
' 'VET' '은 문자열입니다. 그것은 필드 식별자가 아닙니다. 그건 ** ** VET입니다. 따옴표는 없습니다. –
역 인용 부호 대신에'VET'을 따옴표로 묶었습니다. – sisanared
'INSERT INTO VET (id, firstName, lastName) VALUES (1, 'AAAA', 'BBBB'); ' – DimaSan