实例化[org.grails.orm.hibernate.HibernateDatastore]类型的bean时出错:实体映射中的重复列

时间:2018-12-07 14:27:18

标签: gorm grails3 micronaut

我正在使用micronaut和gorm编写一个小型APP。该APP包含两个域,即Book和Author。

    package micronaut.query.association.domain
    import com.fasterxml.jackson.annotation.JsonManagedReference
    import org.grails.datastore.gorm.GormEntity

    @grails.gorm.annotation.Entity
    class Author implements GormEntity<Author> {
        String name
    @JsonManagedReference
        List<Book> books

        static mapping = {
        books fetch: 'join'
        }
    }
    package micronaut.query.association.domain

    import com.fasterxml.jackson.annotation.JsonBackReference
    import org.grails.datastore.gorm.GormEntity

    @grails.gorm.annotation.Entity
    class Book implements GormEntity<Book> {
        String name
    @JsonBackReference
    Author authorx
    }
}

APP编译没有问题,但是当我运行APP时,出现以下错误:

11:50:08.697 [main]错误io.micronaut.runtime.Micronaut-启动Micronaut服务器时出错:无法加载Bean定义org.grails.orm.hibernate.HibernateDatastore]:实例化类型为[org。 grails.orm.hibernate.HibernateDatastore]:实体映射中的重复列:micronaut.query.association.domain.Book列:authorx_id(应与insert =“ false” update =“ false”映射)

如果在“作者”类中将“列表书”行更改为“设置书”,则APP会正常运行。

此外,如果我使用Collection而不是List,则APP会正确运行。

我可以使用grails 3.3.9重现同样的情况。

1 个答案:

答案 0 :(得分:0)

我认为您提供的错误消息可能会误导您。 Grails更冬眠,希望您使用java.util.Set而不是java.util.List进行关联。