Arhn - архитектура программирования

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

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

Если в классе «Автор» изменить строку «Список книг» на «Установить книги», приложение будет работать без проблем.

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

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


  • Попробуйте добавить static belongsTo = [authorx: Author] в класс книги 07.12.2018
  • Я попытался добавить статическое значение ownTo = [authorx: Author] в класс книги, как было предложено james-kleeh, но проблема не исчезла. 07.12.2018

Ответы:


1

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

07.12.2018
  • Grails поддерживает список 07.12.2018
  • Если я использую Collection вместо List, приложение компилируется и выполняется правильно. 08.12.2018
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..