2

如何在 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

我宁愿没有复合键,但我有严格的命令不要触摸数据库,所以现在我正在尽我所能对其建模,但复合键已被证明有些困难......

4

1 回答 1

0

这将是有用的线程

具有 Grails 多对多关系的动态查找器

我有同样的问题。这对我有用。

于 2014-10-30T11:59:26.217 回答