Skip to content

SQL-082: EbillBatchQueryProvider.GetFirstBatch

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

Classification

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

Parameters

Parameter Direction Type Max length Description
batchType Input string N/A Method argument of EbillBatchQueryProvider.GetFirstBatch bound into the ORM expression; NHibernate generates the bind variable at runtime
batchStatus Input string N/A Method argument of EbillBatchQueryProvider.GetFirstBatch bound into the ORM expression; NHibernate generates the bind variable at runtime

Tables

Table Access Columns used
EBILL_BATCH SELECT EBILL_BATCH_SEQ_NUM, UPDATE_NUM, CREATE_DATE, SUBMISSION_DATE, UPDATE_DATE, UPDATE_USER, CLEARINGHOUSE_FILE_NAME, EBILL_BATCH_TYPE_CODE, RESPONSE_BATCH_SEQ_NUM, EBILL_BATCH_STATUS_CODE, PAYMENT_TRANS_STAT_SEQ_NUM, EBILL_CLEARINGHOUSE_SEQ_NUM

LINQ statement

Source: Data/SAIF.Data/Queries/Claims/Ebilling/EbillBatchQueryProvider.cs:47. The repository is obtained at Data/SAIF.Data/Queries/Claims/Ebilling/EbillBatchQueryProvider.cs:19.

// Data/SAIF.Data/Queries/Claims/Ebilling/EbillBatchQueryProvider.cs:19
batchRepository = Factory.GetRepository<EbillBatch>().Query();

// Data/SAIF.Data/Queries/Claims/Ebilling/EbillBatchQueryProvider.cs:47
return batchRepository
            .Where(b => b.Type.Code == batchType &&
                        b.Status.Code == batchStatus)
            .OrderBy(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
    EB.EBILL_BATCH_SEQ_NUM,
    EB.UPDATE_NUM,
    EB.CREATE_DATE,
    EB.SUBMISSION_DATE,
    EB.UPDATE_DATE,
    EB.UPDATE_USER,
    EB.CLEARINGHOUSE_FILE_NAME,
    EB.EBILL_BATCH_TYPE_CODE,
    EB.RESPONSE_BATCH_SEQ_NUM,
    EB.EBILL_BATCH_STATUS_CODE,
    EB.PAYMENT_TRANS_STAT_SEQ_NUM,
    EB.EBILL_CLEARINGHOUSE_SEQ_NUM
  FROM EBILL_BATCH EB
  WHERE EB.EBILL_BATCH_TYPE_CODE = :batchType
    AND EB.EBILL_BATCH_STATUS_CODE = :batchStatus
  ORDER BY EB.EBILL_BATCH_SEQ_NUM
)
WHERE ROWNUM <= 1

Translation notes:

  • Oracle10 row limit for FirstOrDefault(): the query (including any ORDER BY) is wrapped in ROWNUM <= 1 (limit written inline; NHibernate binds it as a parameter at runtime).

Operations and processes

Business rules

Sources

  • Data/SAIF.Data/Queries/Claims/Ebilling/EbillBatchQueryProvider.cs:47