JPA Sql NativeQuery с SqlResultSetMapping, выбрасывающим java.sql.SQLException: столбец «formula3_0_» не найден

Ниже приведен снимок моего @SqlResultSetMapping, который включает две сущности и еще два столбца из собственного запроса.

@SqlResultSetMapping(
    name = "EventLogMarketingInfoMapping",
    entities = {
            @EntityResult(
                    entityClass = MarketingInfo.class,
                    fields = {
                            @FieldResult(name = "id", column = "id"),

                            @FieldResult(name = "remoteAddr", column = "remote_addr"),

                            @FieldResult(name = "user_email", column = "user_email"),

                    }
            ),
            @EntityResult(
                    entityClass = EventLog.class,
                    fields = {
                            @FieldResult(name = "log_id", column = "log_id"),

                            @FieldResult(name = "comment", column = "comment"),

                            @FieldResult(name = "client", column = "client_id"),
                            @FieldResult(name = "game", column = "game_id")
                    }
            )

    },
    columns = {
        @ColumnResult(
            name = "user_namex",
            type = String.class
        ),
        @ColumnResult(
            name = "ip",
            type = String.class
        ),
    })

Выше SqlResultSetMapping вызывается с помощью следующего собственного запроса

   Query query = entityManager.createNativeQuery(sql, "EventLogMarketingInfoMapping");
   return query.getResultList();

MarketingInfo @Entity также имеет некоторые @Forumlas, которые не упоминаются в @EntityResult.

В то время как query.getResultList () выдает следующее исключение.

java.sql.SQLException: Column 'formula3_0_' not found.

Кто-нибудь может определить, что здесь происходит? Я также хотел бы добавить, что сам sql работает нормально и в нем нет синтаксической ошибки или столбца формулы.

Заранее спасибо.

ты когда-нибудь догадывался об этом?

sf8193 16.12.2019 20:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
200
1

Ответы 1

Добавьте соответствующий SQL-оператор, который запускается. Согласно аннотации @EntityResult, оператор select должен извлекать все свойства объекта и должен быть сопоставлен. частичный выбор столбца создаст упомянутое исключение. Альтернативой может быть использование @ConstructorResult, который позволяет частичное извлечение столбца для родительского элемента также для всех связанных объектов сущности.

Другие вопросы по теме