我有一个基本类型,其中"business id“对于给定子类必须是唯一的,但也可能有不同的子类具有相同的business id。
如果有一个带有请求id的基类型,但是它的子类是错误的,我希望使用命名查询返回null。下面的代码可以做到这一点,但我想知道是否可以使用更好的HQL来避免try/catch。我能?
干杯,
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;
}
}发布于 2011-01-17 14:49:48
https://stackoverflow.com/questions/4634490
复制相似问题