Hibernate,当我为sql使id列自动增加时出错

时间:2017-05-02 00:51:25

标签: java mysql spring hibernate

我使用Hibernate 5在Spring中执行ORM。

我的表是:

public class Match {

    @Id
    @Column(name="match_id")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

    private ArrayList<String> players;
    //@OneToMany(mappedBy="match")
    @OneToMany(mappedBy="match")
    private List<Game> games;
    ...
} 

public class Game {

    @Id
    @Column(name="game_id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String person1;
    private String person2;
    private String winner;
    private int score1;
    private int score2;
    private int game_number;

    @Column(name="match_id")
    @ManyToOne(fetch=FetchType.LAZY)
    @PrimaryKeyJoinColumn
    private Match match;
}

两个表之间的关系是一个匹配包含许多游戏。

但是我收到自动增加的错误,错误是:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'match (match_id integer not null auto_increment, players tinyblob, primary key (' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

由于存在错误和中断,我不知道如何打印sql。 我不知道只是设置id自动增加有错误? 我使用了很多人wikibooks,我的情况类似于EMPLOYEE(表)和PHONE(表)情况。

1 个答案:

答案 0 :(得分:0)

Match是MySql中的保留关键字,这就是导致错误的原因。将您的实体重命名为不同的内容,例如FootballMatch ..