我们将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。
有任何帮助表示赞赏吗?
答案 0 :(得分:4)
这里的问题是我们尝试使用列块
配置idstatic mapping = {
table "table_name"
columns {
id generator: 'assigned', column: "id_sco", sqlType: "int"
}
}
相反,我们需要直接在静态映射块
中配置idstatic mapping = {
table "table_name"
id generator: 'assigned', column: "id_sco", sqlType: "int"
columns {
...
}
}