我有两个域对象,结构与下面的类Foo相同
class Foo {
static mapping = {
id column: "old_id_column"
prop1 column: "old_prop_1"
... some more properties ...
}
}
class Bar {
... looks the same as Foo ...
}
并且在类的控制器中我尝试完成同样的事情,创建一个新对象并将其保存到DB。
当我这样做时
class FooController {
def methodName() {
final Foo foo = new Foo()
foo.prop1 = "val1"
foo.prop2 = val2
etc.
foo.save(flush: true)
}
}
一切正常但是当我尝试在BarController中做同样的事情时,我得到以下异常
无法将值NULL插入列' old_id_column',table' System.db.Bar&#39 ;;列不允许空值。
我正在尝试为遗留数据库建模,所以很明显我在底层数据库的配置中遗漏了一些东西,但我找不到任何东西。关于可能引发此异常的事情的任何想法?
答案 0 :(得分:3)
您需要指定生成器
即。
id generator:'assigned', column: 'old_id_column', type: 'string'
请参阅文档@ http://grails.org/doc/latest/ref/Database%20Mapping/id.html