полиморфный хкл - PullRequest
       5

полиморфный хкл

0 голосов
/ 08 января 2011

У меня есть базовый тип, где «бизнес-идентификатор» должен быть уникальным для данного подкласса, но возможно наличие разных подклассов с одним и тем же бизнес-идентификатором.

Если есть базовый тип с запрошенным идентификатором, но с неправильным подклассом, я хочу вернуть ноль, используя именованный запрос. Код ниже делает это, но мне интересно, смогу ли я избежать try / catch с лучшим HQL. Можно я?

Приветствия
Berryl

текущий hql

<query name="FindActivitySubjectByBusinessId">
<![CDATA[
          from ActivitySubject act 
          where act.BusinessId = :businessId 
]]>

</query>

текущий код извлечения

    public ActivitySubject FindByBusinessId<T>(string businessId) where T : ActivitySubject
    {
        Check.RequireStringValue(businessId, "businessId");
        try {
            return _session.GetNamedQuery("FindActivitySubjectByBusinessId")
                .SetString("businessId", businessId)
                .UniqueResult<T>();
        }
        catch (InvalidCastException e) {
            // an Activity Subject was found with the requested id but the wrong type
            return null;
        }
    }

1 Ответ

0 голосов
/ 17 января 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...