2012-06-14 96 views
4

我創建了一個名爲Group的模型,該模型反過來應創建表組。因此,數據庫會隨着錯誤而變化,稱表名是保留字。由於我的模型/表名是保留字,所以我想知道是否有辦法讓我的表名爲組。Play 2.0 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; 
    } 

} 

任何幫助將不勝感激!

+0

順便說一句:你不需要在這種情況下創建自定義getters/setters,'Ebean'會爲你做! – biesior

回答

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; 

所以它應該工作。也許有某事不對報價 - 確保您使用刻度線(\``), not a single quote ( '). You can also try setting的mysql> SET的sql_mode =' ANSI_QUOTES「;從MySQL控制檯. Check if you can create table named group`

+0

人們會認爲這可以工作,但是當它創建鍵時,它試圖命名他們pk_'group'真的很傻! – Spider

+0

鏈接問題表明這個映射取決於你想要使用哪個數據庫 - 對於hsqldb(可能還有其他幾個)你不需要使用''''。 – maialithar

+0

對不起,我忘了提及我正在使用MySQL。我已經嘗試了上面提到的兩種方法,但都沒有工作。 – Glen

2

簡單使用

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

東西,它描述了。表沒有保留字