在Grails 2.0中为域对象使用分配的ID

时间:2012-03-22 16:28:09

标签: grails gorm grails-2.0

我们将Grails与遗留数据库一起使用,我们需要控制如何将ID分配给域对象。

我们尝试过:

id column: "sco_id", generator:'assigned'

但是我们得到了例外:

  

批量更新从update [0]返回意外的行数;实际行   数:0;预期:1

我们还尝试创建自定义ID生成器:

public class ScoIdGenerator implements IdentifierGenerator {

    public Serializable generate(SessionImplementor session, Object object) {

        /*Generate ID here*/

        return 8;
    }

}

但在这种情况下似乎忽略了生成器,因此我们得到了错误

DEFAULT keyword cannot be used as column has no DEFAULT

我不确定这些问题是否特定于Grails 2。

有任何帮助表示赞赏吗?

1 个答案:

答案 0 :(得分:4)

这里的问题是我们尝试使用列块

配置id
static mapping = {
    table "table_name"

    columns {
        id generator: 'assigned', column: "id_sco", sqlType: "int"
    }   
}

相反,我们需要直接在静态映射块

中配置id
static mapping = {
    table "table_name"

    id generator: 'assigned', column: "id_sco", sqlType: "int"
    columns {
        ...
    }   
}