4

我创建了一个名为 Group 的模型,该模型又应该创建表组。结果,数据库出现错误,说表名是保留字。由于我的模型/表名是保留字,我想知道是否有办法将我的表命名为组。

这是我的 Group 模型(Play Framework 2.0)的示例:

@Entity
public class Group extends Model {

@Id         private long     id;    
@Required   private String   groupName;

private static Model.Finder<Long,Group> find = 
new Model.Finder<Long,Group>   (Long.class, Group.class);

public Group() {        
}

public Group(String groupName) {
    this.groupName = groupName;
}

    /*** Getters & Setters ***/
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getGroupName() {
        return groupName;
    }
    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

}

任何帮助将不胜感激!

4

2 回答 2

2

简单使用

@Entity
@Table(name="groupOfxxx")
public class Group {

不带保留字描述表的东西。

于 2012-06-15T13:54:55.077 回答
1

也许会有所帮助:

@Entity
@Table(name="`group`")
public class Group {

如果没有,请尝试:

@Entity
@Table(name="group")
public class Group {

如果没有,请尝试:

https://stackoverflow.com/a/1565765/952046

编辑

MySQL 文档说:

标准 SQL 禁止将表中的大多数词用作列名或表名(例如,GROUP)。

此外

The identifier quote character is the backtick (“`”):

mysql> SELECT * FROM `select` WHERE `select`.id > 100;

所以它应该工作。引号可能有问题 - 确保使用 MySQL 控制台中的刻度线(\``), not a single quote (' ). You can also try settingmysql> SET sql_mode='ANSI_QUOTES'; . Check if you can create table namedgroup`。

于 2012-06-14T08:03:55.773 回答