Пожалуйста, сообщите, как я застрял между одним из собственных запросов в 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]