SQL-137: Retrieve CertificatePreference¶
This ORM statement performs a read operation on CertificatePreference via IUnitOfWork.GetRepository<T>(), executed from Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs (L65, L113, L127).
Classification¶
| Field | Value |
|---|---|
| SQL ID | SQL-137 |
| Operation type | Read |
| Execution method | ORM (NHibernate LINQ) |
| Database | Oracle |
| Schema | [unqualified]** |
| Command type | N/A (ORM-generated) |
| Business object | CertificatePreference |
| Criteria property | N/A — ORM |
| Lifecycle method | GetPreferenceByPolicyNumber, GetPreferences, HasPreference |
Parameters¶
| Parameter | Direction | Type | Max length | Description |
|---|---|---|---|---|
policyNumberList |
Input | ** | N/A | a.PolicyNumber IN (policyNumberList) (Contains) → column POLICY_NUMBER |
policyNumber |
Input | ** | N/A | p.PolicyNumber == policyNumber → column POLICY_NUMBER |
Tables¶
| Table | Access | Columns used |
|---|---|---|
| CERTIFICATE_PREFERENCE | SELECT | POLICY_NUMBER, DELIVERY_METHOD_CODE, RENEWAL_NOTIFICATION_CODE, EMAIL_ADDRESS, FAX_NUMBER, UPDATE_USER, UPDATE_DATE, CREATE_USER, CREATE_DATE |
LINQ statement¶
Source: Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:65
// Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:65-66
var certificatePreferenceData = unitOfWork.GetRepository<CertData.CertificatePreference>().Query()
.Where(a => policyNumberList.Contains(a.PolicyNumber));
// Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:68
return Mapper.Map<CertificatePreference[]>(certificatePreferenceData);
// Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:112-115
return
unitOfWork.GetRepository<CertData.CertificatePreference>()
.Query()
.Count(p => p.PolicyNumber == policyNumber) > 0;
// Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:127-129
return unitOfWork.GetRepository<CertData.CertificatePreference>()
.Query()
.Single(p => p.PolicyNumber == policyNumber);
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
-- Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:65
SELECT
CP.POLICY_NUMBER,
CP.DELIVERY_METHOD_CODE,
CP.RENEWAL_NOTIFICATION_CODE,
CP.EMAIL_ADDRESS,
CP.FAX_NUMBER,
CP.UPDATE_USER,
CP.UPDATE_DATE,
CP.CREATE_USER,
CP.CREATE_DATE
FROM CERTIFICATE_PREFERENCE CP
WHERE CP.POLICY_NUMBER IN (:policyNumberList)
-- Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:113
SELECT COUNT(*)
FROM CERTIFICATE_PREFERENCE CP
WHERE CP.POLICY_NUMBER = :policyNumber
-- Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs:127
SELECT
CP.POLICY_NUMBER,
CP.DELIVERY_METHOD_CODE,
CP.RENEWAL_NOTIFICATION_CODE,
CP.EMAIL_ADDRESS,
CP.FAX_NUMBER,
CP.UPDATE_USER,
CP.UPDATE_DATE,
CP.CREATE_USER,
CP.CREATE_DATE
FROM CERTIFICATE_PREFERENCE CP
WHERE CP.POLICY_NUMBER = :policyNumber
-- NHibernate expects at most one row
Translation notes:
- L65-66 is materialized by Mapper.Map (L68).
- L112-115: Count(...) -> SELECT COUNT(*); the > 0 comparison runs in memory.
Operations and processes¶
- CertificatePreferenceService.GetPreferenceByPolicyNumber — see Operations and processes
- CertificatePreferenceService.GetPreferences — see Operations and processes
- CertificatePreferenceService.HasPreference — see Operations and processes
Sources¶
Services/SAIF.Services/Policies/Certificates/CertificatePreferenceService.cs (L65, L113, L127)