首页
学习
活动
专区
圈层
工具
发布

多态hql
EN

Stack Overflow用户
提问于 2011-01-08 23:08:25
回答 1查看 320关注 0票数 0

我有一个基本类型,其中"business id“对于给定子类必须是唯一的,但也可能有不同的子类具有相同的business id。

如果有一个带有请求id的基类型,但是它的子类是错误的,我希望使用命名查询返回null。下面的代码可以做到这一点,但我想知道是否可以使用更好的HQL来避免try/catch。我能?

干杯,

Berryl

当前hql

代码语言:javascript
复制
<query name="FindActivitySubjectByBusinessId">
<![CDATA[
          from ActivitySubject act 
          where act.BusinessId = :businessId 
]]>

</query>

当前取数代码

代码语言:javascript
复制
    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;
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-17 14:49:48

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4634490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档