参照エンティティが ID で見つからない場合にカスタム ロジックを配置する方法はありますか?
問題: ユーザー フィールドには、AD ログインと参照テーブル ユーザーが格納されます。テーブルには、アクティブなユーザーのみが含まれます (これは顧客のポリシーです)。非アクティブなユーザーのレコードを開くと、EntityNotFoundException が発生します。ログインで埋められたダミーの User オブジェクトを返したいとします。
可能です?
参照エンティティが ID で見つからない場合にカスタム ロジックを配置する方法はありますか?
問題: ユーザー フィールドには、AD ログインと参照テーブル ユーザーが格納されます。テーブルには、アクティブなユーザーのみが含まれます (これは顧客のポリシーです)。非アクティブなユーザーのレコードを開くと、EntityNotFoundException が発生します。ログインで埋められたダミーの User オブジェクトを返したいとします。
可能です?
を使用して、ユーザーへの参照をマップできます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" />