Получение исключения в jpa, поскольку один из столбцов не существует - PullRequest
0 голосов
/ 27 октября 2018

Пожалуйста, сообщите, как я застрял между одним из собственных запросов в JPA.У меня есть нижеприведенный оракульный запрос, который отлично выполняется, теперь я использую его как собственный запрос с JPA.

У меня есть три отдельных класса сущностей с именами GFT_GATA, GRODUCT_GTTRIBUTE, GERSON

public static final String GET_PAYMENTS_WITH_DATE =  "SELECT * "
        + "FROM "
        + "  ( WITH BASE AS "
        + "  (SELECT A.*, "
        + "    COUNT(*) OVER () AS TOTAL_RECORDS "
        + "  FROM "
        + "    (SELECT eft.*, "
        + "      P.BUSINESS_NAME , "
        + "      PA.DESCRIPTION "
        + "    FROM GFT_GATA EFT, "
        + "      CONTACT_TOKEN CT, "
        + "      GRODUCT_GTTRIBUTE PA, "
        + "      GERSON P "
        + "    WHERE eft.GERSON_id          =  ? "
        + "    AND EFT.TO_CONTACT_TOKEN_ID  = CT.CONTACT_TOKEN_ID "
        + "    AND EFT.GRODUCT_GTTRIBUTE_ID = PA.GRODUCT_GTTRIBUTE_ID "
        + "    AND EFT.GERSON_ID            = P.GERSON_ID "
        + "    AND EFT.CREATED_ON           >= CAST (? AS DATE) "
        + "    AND EFT.CREATED_ON          <= CAST (? AS DATE) "
        + "    ORDER BY eft.created_on "
        + "    ) A "
        + "  ) "
        + "SELECT ROUND((ROWNUM - MOD(ROWNUM-1, ? )) / ?) +1 PAGE_NUMBER, "
        + "  B.* "
        + "FROM BASE B "
        + "  ) "
        + "WHERE PAGE_NUMBER = ? ";

дляВ этом запросе я добавил еще два столбца с именами TOTAL_RECORDS и номером страницы, и я добавил те же EFT ava классы, поэтому для этого я добавил динамически два столбца

@Entity
@Table(name="GFT_GATA")


@SqlResultSetMappings({     
          @SqlResultSetMapping(name="getPayments", entities = {
          @EntityResult(entityClass = EftData.class),
          @EntityResult(entityClass = GERSON.class),
          @EntityResult(entityClass = ProductAttribute.class)
        } ,  classes={
                  @ConstructorResult(
                          targetClass=com.fiserv.disbursement.entities.entity.Pagination.class,
                            columns={
                               @ColumnResult(name="totalRecords"),
                               @ColumnResult(name="pageNumber")
                               }
                     )
                  })
        })

и создал файл pojoтот же класс пагинации имени, но проблема в том, что после выполнения я все еще получаю ошибку.

Javax.persistence.PersistenceException: org.hibernate.HibernateException: Не удалось разрешить имя столбца в наборе результатов [totalRecords]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...