Hi Oscar.Do you have add a JIRA ticket with your problem and solution ?

2008/12/19 Oscar Orduz Acosta <[email protected]>

> Hello Manu:
>
> I had similar experience, what I needed were have the same entities but in
> different databases (even in different Engines i.e Oracle, MsSQl, etc), so
> we can support almost transparently several client implementations in
> Database but with the same design.
>
> I have to custom the code of Burrow in the following files:
>
> BurrowFramework.cs:
>         /// <summary>
>         /// Numero método incluido para Framework
>         /// </summary>
>         /// <param name="configurationId"></param>
>         /// <returns></returns>
>         public ISessionFactory GetSessionFactoryByName(string
> configurationId)
>         {
>             if (PersistenceUnitRepo.Instance == null)
>
>  PersistenceUnitRepo.Initialize(BurrowEnvironment.Configuration);
>             return
> PersistenceUnitRepo.Instance.GetPUByName(configurationId).SessionFactory;
>         }
>         /// <summary>
>         /// Oscar Orduz.
>         /// </summary>
>         /// <param name="configurationId"></param>
>         /// <returns></returns>
>         public ISession GetSessionByName(string configurationId)
>         {
>             AbstractConversation c =
> ((AbstractConversation)CurrentConversation);
>             return c.GetSessionByName(configurationId);
>         }
>
> AbstractConversation.cs
>
>        /// <summary>
>         /// Oscar Orduz
>         /// </summary>
>         /// <param name="configurationId"></param>
>         /// <returns></returns>
>         public ISession GetSessionByName(string configurationId)
>         {
>             SessionManager sm = string.IsNullOrEmpty(configurationId) ?
> GetSessionManager() : GetSessionManagerByName(configurationId);
>             return GetSession(sm);
>         }
>         /// <summary>
>         /// Método creado para el manejo de la sesión para el framework de
> PS
>         /// </summary>
>         /// <param name="configurationId"></param>
>         /// <returns></returns>
>         internal SessionManager GetSessionManagerByName(string
> configurationId)
>         {
>             return
> sessManagers[PersistenceUnitRepo.Instance.GetPUByName(configurationId)];
>         }
>
> PersistenceUnitRepo.cs
>         /// <summary>
>         /// Método creado para la recuperación por nombre
>         /// </summary>
>         /// <param name="configurationId"></param>
>         /// <returns></returns>
>         public PersistenceUnit GetPUByName(string configurationId)
>         {
>             if (PersistenceUnits.Count == 1)
>             {
>                 return PersistenceUnits[0];
>             }
>             foreach (PersistenceUnit pu in persistenceUnits)
>             {
>                 if (pu.Name == configurationId)
>                 {
>                     return pu;
>                 }
>             }
>
>             throw new GeneralException("Persistence Unit cannot be found
> for " + configurationId);
>         }
>
> I have mantained this code for three releases of burrow and until now it
> works fine
>
> Hope this help.
>
> Oscar
>
> 2008/12/18 Manu <[email protected]>
>
>
>> I have been looking at the Burrow source code and I'm not sure if I
>> can use its GenericDAO to handle multiple databases the way I want.
>>
>> I have see that the Session property of the GenericDAO class calls
>> BurrowFramework().GetSession(_NHEntityType) and that works good if the
>> multiples databases you're working with have different entities.
>> However, it can't handle multiple databases with the same mapped
>> entities as the GetSession method always returns the first
>> PersistenceUnit. So I think GenericDAO needs an overload to specify a
>> session factory name to retrieve the proper PersistenceUnit by name
>> instead of by type.
>>
>> As I have started today to look at Burrow I may be wrong, so if anyone
>> is familiar with it I'd appreciate if he can show some light about
>> that problem.
>>
>>
>>
>
> >
>


-- 
Fabio Maulo

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to