0

我正在使用 micronaut 和 gorm 编写一个小型应用程序。APP包含两个域,书和作者。

    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 类型的 bean 时出错.hibernate.HibernateDatastore]:实体映射中的重复列:micronaut.query.association.domain.Book 列:authorx_id(应使用 insert="false" update="false" 映射)

如果在 Author 类中我将“列出书籍”这一行更改为“设置书籍”,则 APP 运行没有问题。

此外,如果我使用 Collection 而不是 List 应用程序运行正确。

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

4

1 回答 1

0

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

于 2018-12-07T17:11:48.240 回答