我创建了一个名为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;
}
}
非常感谢任何帮助!
答案 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
修改强>
表中的大多数单词都被标准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 setting
mysql&gt; SET sql_mode ='ANSI_QUOTES'; . Check if you can create table named
group`。