Skip to content

SQL-192: PaymentsQueryProvider.GetLastPaymentTransactionStatisic

This statement is a read operation invoked through ORM (NHibernate LINQ). Executed by PaymentsQueryProvider.GetLastPaymentTransactionStatisic.

Classification

Field Value
SQL ID SQL-192
Operation type Read
Execution method ORM (NHibernate LINQ)
Database Oracle*
Schema [unqualified]**
Command type N/A (ORM-generated)
Business object PaymentsQueryProvider
Criteria property N/A — ORM
Lifecycle method GetLastPaymentTransactionStatisic

Parameters

Parameter Direction Type Max length Description
code Input String N/A Method argument of PaymentsQueryProvider.GetLastPaymentTransactionStatisic bound into the ORM expression; NHibernate generates the bind variable at runtime

Tables

Table Access Columns used
PAYMENT_TRANSACTION_STAT SELECT PAYMENT_TRANS_STAT_SEQ_NUM, UPDATE_NUM, BEGIN_CHECK_NUM, END_CHECK_NUM, BEGIN_EFT_NUM, END_EFT_NUM, BEGIN_NOPAY_NUM, END_NOPAY_NUM, EXTRACT_DATE, EXTRACT_CHECK_TRANS_COUNT, EXTRACT_CHECK_TRANS_AMT, EXTRACT_EFT_TRANS_COUNT, EXTRACT_EFT_TRANS_AMT, EXTRACT_NOPAY_TRANS_COUNT, ISSUE_DATE, OUTPUT_DATE, OUTPUT_IMAGE_FLAG, COMMENT_TEXT, UPDATE_USER, UPDATE_DATE, PAYMENT_TRANSACTION_TYPE_CODE

LINQ statement

Source: Data/SAIF.Data/Queries/Payments/PaymentsQueryProvider.cs:28-31. The repository/queryable is initialised at Data/SAIF.Data/Queries/Payments/PaymentsQueryProvider.cs:17.

// Data/SAIF.Data/Queries/Payments/PaymentsQueryProvider.cs:17
batchRepository = Factory.GetRepository<PaymentTransactionStatistic>().Query();

// Data/SAIF.Data/Queries/Payments/PaymentsQueryProvider.cs:28-31
public PaymentTransactionStatistic GetLastPaymentTransactionStatisic(String code)
{
    return batchRepository
                .Where(b => b.Type.Code == code)
                .OrderByDescending(o => o.Id)
                .FirstOrDefault();
}

Sample SQL

Inferred SQL: This SQL was inferred from the LINQ statement above and the NHibernate mappings. It is not concrete SQL from source code; NHibernate generates the executed statement at runtime, so aliases, column order, join syntax, and bind-parameter names may differ.

-- Inferred from LINQ (NHibernate mapping translation); not concrete SQL
SELECT * FROM (
  SELECT
    PTS.PAYMENT_TRANS_STAT_SEQ_NUM,
    PTS.UPDATE_NUM,
    PTS.BEGIN_CHECK_NUM,
    PTS.END_CHECK_NUM,
    PTS.BEGIN_EFT_NUM,
    PTS.END_EFT_NUM,
    PTS.BEGIN_NOPAY_NUM,
    PTS.END_NOPAY_NUM,
    PTS.EXTRACT_DATE,
    PTS.EXTRACT_CHECK_TRANS_COUNT,
    PTS.EXTRACT_CHECK_TRANS_AMT,
    PTS.EXTRACT_EFT_TRANS_COUNT,
    PTS.EXTRACT_EFT_TRANS_AMT,
    PTS.EXTRACT_NOPAY_TRANS_COUNT,
    PTS.ISSUE_DATE,
    PTS.OUTPUT_DATE,
    PTS.OUTPUT_IMAGE_FLAG,
    PTS.COMMENT_TEXT,
    PTS.UPDATE_USER,
    PTS.UPDATE_DATE,
    PTS.PAYMENT_TRANSACTION_TYPE_CODE
  FROM PAYMENT_TRANSACTION_STAT PTS
  WHERE PTS.PAYMENT_TRANSACTION_TYPE_CODE = :code
  ORDER BY PTS.PAYMENT_TRANS_STAT_SEQ_NUM DESC
) WHERE ROWNUM <= 1

Operations and processes

Business rules

Sources

  • Data/SAIF.Data/Queries/Payments/PaymentsQueryProvider.cs:28