acolmano
03-28-2007, 09:15 PM
Hi,
I try to configure NHibernate 1.2, Spring Preview 3 and NHibernate Module 12 to work together and I also need to make TransactionProxyFactoryObject.
The transaction interceptor configuration file is below:
<object id="TxProxyConfigurationTemplate" abstract="true" type="Spring.Transaction.Interceptor.TransactionProxyFac toryObject, Spring.Data">
<property name="PlatformTransactionManager" ref="HibernateTransactionManager"/>
<property name="TransactionAttributes">
<name-values>
<add key="*" value="PROPAGATION_REQUIRED"/>
<!--
<add key="Delete*" value="PROPAGATION_REQUIRED"/>
-->
</name-values>
</property>
<!-- defined in Aspects.xml -->
<property name="PreInterceptors" ref="CommonLoggingAroundAdvice"/>
</object>
<object id="CardServiceTx" parent="TxProxyConfigurationTemplate"> <property name="Target" ref="CardService"/>
</object>
........
<object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>Abaco.Data</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<entry key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"/>
<entry key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"/>
<entry key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"/>
</dictionary>
</property>
</object>
<object id="HibernateTransactionManager"
type="Spring.Data.NHibernate.HibernateTransactionManager , Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="SessionFactory"/>
</object>
I try to get a Dao object in first transactional method signed by [Transaction()] attribute.
In the second transaction I try to get the childs of previous object by its getters property. I received this exception:
NHibernate.LazyInitializationException: Could not initialize proxy - the owning Session was closed.
The hbm config file are below:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">
<class name="Abaco.Dao.Domain.Contacts, Abaco.Dao" table="Contacts" lazy="true">
.........
<bag name="ContactDetails" cascade="all" inverse="true" generic="true" lazy="true" >
<key column="FK_Contact"/>
<one-to-many class="Abaco.Dao.Domain.ContactDetails, Abaco.Dao"/>
</bag>
........
Any idea? Any help would be great.
I try to configure NHibernate 1.2, Spring Preview 3 and NHibernate Module 12 to work together and I also need to make TransactionProxyFactoryObject.
The transaction interceptor configuration file is below:
<object id="TxProxyConfigurationTemplate" abstract="true" type="Spring.Transaction.Interceptor.TransactionProxyFac toryObject, Spring.Data">
<property name="PlatformTransactionManager" ref="HibernateTransactionManager"/>
<property name="TransactionAttributes">
<name-values>
<add key="*" value="PROPAGATION_REQUIRED"/>
<!--
<add key="Delete*" value="PROPAGATION_REQUIRED"/>
-->
</name-values>
</property>
<!-- defined in Aspects.xml -->
<property name="PreInterceptors" ref="CommonLoggingAroundAdvice"/>
</object>
<object id="CardServiceTx" parent="TxProxyConfigurationTemplate"> <property name="Target" ref="CardService"/>
</object>
........
<object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>Abaco.Data</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<entry key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"/>
<entry key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"/>
<entry key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"/>
</dictionary>
</property>
</object>
<object id="HibernateTransactionManager"
type="Spring.Data.NHibernate.HibernateTransactionManager , Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="SessionFactory"/>
</object>
I try to get a Dao object in first transactional method signed by [Transaction()] attribute.
In the second transaction I try to get the childs of previous object by its getters property. I received this exception:
NHibernate.LazyInitializationException: Could not initialize proxy - the owning Session was closed.
The hbm config file are below:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">
<class name="Abaco.Dao.Domain.Contacts, Abaco.Dao" table="Contacts" lazy="true">
.........
<bag name="ContactDetails" cascade="all" inverse="true" generic="true" lazy="true" >
<key column="FK_Contact"/>
<one-to-many class="Abaco.Dao.Domain.ContactDetails, Abaco.Dao"/>
</bag>
........
Any idea? Any help would be great.