Не могу объединить составные идентификаторы в Grails 3

У меня есть следующие 2 класса домена

class Foo implements Serializable {
    Long fooId1
    Long fooId2
    Long hFooId1
    Long hFooId2
    Foo hFoo
    Bar bar
    static mapping = {
        datasources(['ds1','ds2'])
        id composite: ["fooId1", "fooId2"]
        version false

        columns {
            bar(insertable: false, updateable: false) {
                column name: 'fooId1'
                column name: 'fooId2'
            }
            hFoo(insertable: false, updateable: false) {
                column name: 'hFooId1'
                column name: 'hFooId2'
            }
        }
    }

    static constraints = {
        hFooId1 nullable: true
        hFooId2 nullable: true
        bar nullable: true
        hFoo nullable: true
    }
}
class Bar implements Serializable
{
    Long fooId1
    Long fooId2
    Foo foo
    static mapping = {
        datasources(['ds1','ds2'])
        id composite: ["fooId1", "fooId2"]
        version false
        cache include: 'non-lazy'

        foo(insertable: false, updateable: false) {
            column name: 'fooId1'
            column name: 'fooId2'
        }
    }
}

С интеграционным тестом...

@Integration
@Rollback
@Mock([Foo, Bar])
....
def "Simple Test"(){
    expect:
    def bar = Bar.build( fooId1: 1, fooId2: 2)
    def hFoo = Foo.build( fooId1: 1, fooId2: 2, bar: bar)
    def foo = Foo.build( fooId1: 123, fooId2: 456, hFoo: hFoo)
    foo.fooId2 == 456
    foo.hFoo.fooId2 == 2
    foo.bar == null
    foo.hFoo.bar.fooId2 == 2
}

я получил

Не удается обработать свойство с несколькими столбцами как свойство с одним столбцом в org.grails.orm.hibernate.cfg.PropertyConfig.checkHasSingleColumn(PropertyConfig.groovy:222) в org.grails.orm.hibernate.cfg.PropertyConfig.getScale(PropertyConfig. заводной:198)

Это обновление, так что, похоже, он работал в Grails 2-

Кто-нибудь может увидеть, что мне не хватает?

1 ответ

Решение

Похоже, это была проблема с версиями....

Это работает в build.gradle

 //    compile "org.grails.plugins:hibernate4"

Или это в gradle.properties...

grailsVersion=3.0.11
Другие вопросы по тегам