在Grails2.0中为域对象使用分配的ID

在Grails2.0中为域对象使用分配的ID,grails,gorm,grails-2.0,Grails,Gorm,Grails 2.0,我们将Grails与遗留数据库一起使用,我们需要控制如何将ID分配给域对象 我们已尝试: id column: "sco_id", generator:'assigned' 但我们有一个例外: 批更新从更新[0]返回了意外的行计数;实际行 计数:0;预期:1 我们还尝试创建自定义ID生成器: public class ScoIdGenerator implements IdentifierGenerator { public Serializable generate(Session

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

我们已尝试:

id column: "sco_id", generator:'assigned'
但我们有一个例外:

批更新从更新[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
我不确定这些问题是否特定于Grails2


感谢您的帮助吗?

这里的问题是我们试图用columns块配置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 {
        ...
    }   
}

这里的问题是我们试图用columns块配置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 {
        ...
    }   
}

感谢您发布详细的答案。有一天,它可能会帮助与你有同样问题的人!感谢您发布详细的答案。有一天,它可能会帮助与你有同样问题的人!