我正在写一个使用micronaut和gorm的小应用程序。该应用程序包含两个域,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
}
}
该应用程序编译没有问题,但当我运行该应用程序时,我收到以下错误:
11:50:08.697主要错误io.micronaut.runtime.Micronaut -启动Micronaut服务器错误:无法加载Bean定义org.grails.orm.hibernate.HibernateDatastore]:实例化org.grails.orm.hibernate.HibernateDatastore类型的bean时出错: entity: micronaut.query.association.domain.Book列: authorx_id的映射中的重复列(应使用insert="false“update=”false“映射)
如果在Author类中,我将行"List book“更改为"Set book”,则应用程序运行时没有问题。
此外,如果我使用Collection而不是List,则应用程序将正确运行。
我可以使用grails 3.3.9重现同样的情况。
发布于 2018-12-08 01:11:48
我认为您提供的错误消息可能会误导您。Grails,更像是hibernate,希望您使用java.util.Set而不是java.util.List来进行关联。
https://stackoverflow.com/questions/53671509
复制相似问题