/// <summary> /// replace the default implementation of the Session Factory (read from configuration) with a user supplied one. /// NOTE : 이 작업은 Application 시작시에만 가능하다. /// </summary> /// <param name="cfg">instance of Configuration</param> /// <param name="factory">instance of ISessionFactory to regist</param> public virtual void RegisterSessionFactory(Configuration cfg, ISessionFactory factory) { factory.ShouldNotBeNull("factory"); if (log.IsInfoEnabled) { log.Info("새로운 Session Factory 등록을 시도합니다... factory=[{0}]", factory.GetSessionFactoryName()); } var old = _sessionFactory; _cfg = cfg; _sessionFactory = factory; if (log.IsInfoEnabled) { log.Info("새로운 SesscionFactory 등록 작업이 성공했습니다!!! factory=[{0}]", factory.GetSessionFactoryName()); } if (old != null) { old.Close(); if (IsDebugEnabled) { log.Debug("기존 Session Factory는 Close 시켰습니다."); } } }
/// <summary> /// 지정된 엔티티 형식이 <paramref name="sessionFactory"/>에 매핑된 엔티티인지 파악합니다. /// </summary> /// <param name="sessionFactory">엔티티가 매핑되었을 SessionFactory</param> /// <param name="entityType">엔티티의 형식</param> /// <returns>SessionFactory에 엔티티 형식이 매핑되었으면 True, 아니면 False</returns> /// <seealso cref="NHibernateProxyHelper.GetClassWithoutInitializingProxy"/> public static bool IsMappedEntity(this ISessionFactory sessionFactory, Type entityType) { if (entityType == null) { return(false); } if (IsDebugEnabled) { log.Debug("Current SessionFactory[{0}]에 엔티티 형식[{1}]가 매핑되었는지 확인합니다...", sessionFactory.GetSessionFactoryName(), entityType.FullName); } return(sessionFactory.GetClassMetadata(entityType.GetUnproxiedType()) != null); }