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のドキュメントには次のように書かれています:

テーブル内の単語のほとんどは、列またはテーブル名 (たとえば、GROUP) として標準 SQL によって禁止されています。

さらに

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

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

だからうまくいくはずです。引用符が間違っている可能性があります - チェックマーク ( \``), not a single quote (' ). You can also try settingmysql> SET sql_mode='ANSI_QUOTES'; . Check if you can create table namedgroup` を MySQL コンソールから使用していることを確認してください。

于 2012-06-14T08:03:55.773 に答える