Skip to content

SQL-241: Retrieve OutputDocument

This ORM statement retrieves a single OutputDocument by its primary key, via IUnitOfWork.GetRepository<T>(), executed from Services/SAIF.Services/OutputDocuments/PolicyDocumentsBatchService.cs (L115, L351). ReleaseDocuments looks up the document with a LINQ Single, and FillOutputDocumentProperty reloads it with IRepository.Get.

Classification

Field Value
SQL ID SQL-241
Operation type Read
Execution method ORM (NHibernate LINQ) (L115); ORM (IRepository.Get) (L351)
Database Oracle
Schema [unqualified]**
Command type N/A (ORM-generated)
Business object PolicyDocumentsBatchService
Criteria property N/A — ORM
Lifecycle method ReleaseDocuments, FillOutputDocumentProperty

Parameters

Parameter Direction Type Max length Description
:Id Input long N/A x.Id (L115) — id of the document being released
:id Input long N/A releasedAgencyDeliveredSaifDoc.Id (L351)

Tables

Table Access Columns used
OUTPUT_DOCUMENT SELECT output_document_seq_num, update_num, image_seq_num, document_create_date, description, create_user, create_date, update_user, update_date, output_document_type_code

LINQ statement

Source: Services/SAIF.Services/OutputDocuments/PolicyDocumentsBatchService.cs:115

// Services/SAIF.Services/OutputDocuments/PolicyDocumentsBatchService.cs:115
var outputDocument = unitOfWork.GetRepository<OutputDocument>().Query().Single(od => od.Id == x.Id);

// Services/SAIF.Services/OutputDocuments/PolicyDocumentsBatchService.cs:350-351
releasedAgencyDeliveredSaifDoc.OutputDocument =
    unitOfWork.GetRepository<OutputDocument>().Get(releasedAgencyDeliveredSaifDoc.Id);

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
-- ReleaseDocuments (L115): single-row lookup of OutputDocument by primary key (Single)
SELECT
  OD.output_document_seq_num,
  OD.update_num,
  OD.image_seq_num,
  OD.document_create_date,
  OD.description,
  OD.create_user,
  OD.create_date,
  OD.update_user,
  OD.update_date,
  OD.output_document_type_code
FROM output_document OD
WHERE OD.output_document_seq_num = :Id
-- NHibernate expects at most one row

-- FillOutputDocumentProperty (L351): Get(releasedAgencyDeliveredSaifDoc.Id)
SELECT
  OD.output_document_seq_num,
  OD.update_num,
  OD.image_seq_num,
  OD.document_create_date,
  OD.description,
  OD.create_user,
  OD.create_date,
  OD.update_user,
  OD.update_date,
  OD.output_document_type_code
FROM output_document OD
WHERE OD.output_document_seq_num = :id

Translation notes: - Get(id) may be satisfied from the session first-level cache without a round trip. - HasOne(PolicyOutputDocument).Cascade.All() is a one-to-one association; it is not part of the selected column list.

Operations and processes

Business rules

Sources

  • Services/SAIF.Services/OutputDocuments/PolicyDocumentsBatchService.cs (L115, L351)