如何在 Grails 中对遗留数据库中的复合键进行建模
我有一个遗留数据库,其中包含由 Grails 域对象建模的三个表
class Foo {
static hasMany = [bars: Bar]
static mapping = {
version false
columns {
id column: "FooId"
fooProp column: "FooProp"
}
}
}
class Bar implements Serializable{
Baz baz
static hasMany = [foos: Foo]
static belongsTo = [Foo]
static mapping = {
version false
columns {
id composite: ["FooId", "BazId"]
baz column: "BazId"
barProp column: "BarProp"
}
}
}
class Baz {
static hasMany = [bars: Bar]
static mapping = {
version false
columns {
id column: "BazId"
bazProp column: "BazProp"
}
}
}
但是当我尝试部署它时,我得到以下异常
原因:org.springframework.beans.factory.BeanCreationException:创建名为“transactionManager”的bean时出错:设置bean属性“sessionFactory”时无法解析对bean“sessionFactory”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“sessionFactory”的 bean 时出错:调用 init 方法失败;嵌套异常是 org.hibernate.HibernateException: Missing column: id in app.Bar
我宁愿没有复合键,但我有严格的命令不要触摸数据库,所以现在我正在尽我所能对其建模,但复合键已被证明有些困难......