Ошибка создания экземпляра bean-компонента типа [org.grails.orm.hibernate.HibernateDatastore]: повторяющийся столбец в сопоставлении для сущности - PullRequest
0 голосов
/ 07 декабря 2018

Я пишу небольшое приложение, используя micronaut и gorm.Приложение содержит два домена: Книга и Автор.

    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 [main]ОШИБКА io.micronaut.runtime.Micronaut - Ошибка запуска сервера Micronaut: определение компонента org.grails.orm.hibernate.HibernateDatastore] не удалось загрузить: ошибка создания экземпляра компонента типа [org.grails.orm.hibernate.HibernateDatastore]: повторный столбецв сопоставлении для объекта: micronaut.query.association.domain.Book column: authorx_id (должно отображаться с помощью insert = "false" update = "false")

Если в классе Author я изменяю строку "Списокbooks "to" Установить книги ", приложение запускается без проблем.

Кроме того, если я использую Collection вместо List, приложение работает правильно.

Я могу воспроизвести ту же ситуацию, используя grails 3.3.9.

1 Ответ

0 голосов
/ 07 декабря 2018

Я думаю, что сообщение об ошибке, которое вы предоставили, может вас немного упустить.Grails, более спящий режим, хочет, чтобы вы использовали java.util.Set вместо java.util.List для ассоциаций.

...