如何在grails中对遗留数据库中的复合键进行建模

时间:2012-12-11 09:34:30

标签: gorm grails-2.0

如何在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:缺少列:app.Bar中的id

我宁愿没有复合键但是我有严格的命令不要触摸DB所以现在我正在尽力模拟它,但复合键已经证明有点困难......

1 个答案:

答案 0 :(得分:0)

这个帖子很有用

Dynamic finders with Grails many-to-many relationship

我遇到了同样的问题。 这对我有用。