我收到以下错误:
我们收到以下错误:您的SQL语法出错; 检查与您的MySQL服务器版本对应的手册 正确的语法使用'整数非空,约束pk_checkpoint附近 主键(id))'在第9行[错误:1064,SQLSTATE:42000],而 试图运行这个SQL脚本:
生成的SQL:
1 # --- Rev:1,Ups - 491c235
2
3 create table checkpoint (
4 id bigint auto_increment not null,
5 name varchar(80) not null,
6 longitude double not null,
7 latitude double not null,
8 points integer not null,
9 message varchar(160) not null,
10 scenario_id bigint,
11 index integer not null,
12 constraint pk_checkpoint primary key (id))
13;
我的模特:
@Entity
public class Checkpoint extends Model {
@Id
public Long id;
@Column(length = 80, nullable = false)
public String name;
@Column(nullable = false)
public double longitude;
@Column(nullable = false)
public double latitude;
@Column(nullable = false)
public int points;
@Column(length = 160, nullable = false)
public String message;
@OneToMany(cascade = CascadeType.ALL)
public List<CheckpointAnswer> possibleAnswers = new ArrayList<CheckpointAnswer>();
@ManyToOne(cascade = CascadeType.PERSIST)
public Scenario scenario;
@Column(nullable = false)
public int index;
}
怎么了?
答案 0 :(得分:0)
要添加上述内容,并且不要贬低避免保留字可能是一个好主意,如果您真的希望将列称为索引,可以使用MySQL工作台或sql工具手动创建表选择使用列名称后面的反引号(`index`)。至少在Scala / anorm中,这不会改变您在源代码中引用列的方式。 (对于跨数据库兼容性,将MySQL配置为使用双引号而不是反引号可能也是一个好主意。进一步讨论here。)