Play 2.0 Framework - 保留表名

时间:2012-06-14 07:57:43

标签: java mysql playframework playframework-2.0

我创建了一个名为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;
    }

}

@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; } }

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

简单使用

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

描述没有保留字的表的东西。

答案 1 :(得分:1)

也许this会有所帮助:

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

如果没有,请尝试:

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

如果没有,请尝试:

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

修改

MySQL docs说:

  

表中的大多数单词都被标准SQL禁止为列   或表名(例如,GROUP)。

Furthermore

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

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

所以它应该有效。也许引号有错误 - 请确保在MySQL控制台中使用勾选标记(\``), not a single quote ('). You can also try setting mysql&gt; SET sql_mode ='ANSI_QUOTES'; . Check if you can create table named group`。