当id找不到引用的实体时,有没有办法放置自定义逻辑?
问题:用户字段存储AD登录和参考表用户。该表仅包含活动用户(这是客户的策略)。当我们用非活动用户打开一条记录时,我们得到了EntityNotFoundException。我们想要返回一个由其登录填充的虚拟User对象。
有可能吗?
答案 0 :(得分:0)
您可以使用not-found="ignore"
将引用映射到用户。然后,缺失的用户将在您可以自己处理的关联属性中显示为null。
类别:
public class SomeClass
{
private string _userLogin;
private User _user;
public virtual User User
{
get
{
if (_user == null && !String.IsNullOrEmpty(_userLogin))
{
return new User(_userLogin); // Dummy User
}
return _user;
}
set
{
_user = value;
}
}
}
映射:
<property name="_userLogin" column="user_login" access="field" insert="false" update="false" />
<many-to-one name="_user" column="user_login" access="field" not-found="ignore" />