我正在使用 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 重现相同的情况。