0

我们将 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

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

任何帮助表示赞赏?

4

1 回答 1

4

这里的问题是我们试图用 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 {
        ...
    }   
}
于 2012-03-23T00:34:50.893 回答