Thanks for your reply
1. Improper transactionmanagement or setup
- How can i be sure that i have a proper transactionmanagement?
2. Reading/processing a lot of data without calling flush and clear which eats up the memory
How can i flush/clear hibernate session, as i am not referring this session in any place of my code.
I am using HibernateTemplate, and this one get the session from SessionFactory
SPRING 3.0.1.RELEASE-A
HIBERNATE 3.2.7.GA
Code:
my AppContext.xml file:
<bean id="mySessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property
name="mappingResources"><list><value>com/xxx/yyy/model/domain/hibernate/Account.hbm.xml</value></list></property>
<property name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>
<property name="dataSource">
<ref bean="myDataSource" />
</property>
</bean>
<bean id="myDao"
class="com.xxx.yyy.model.domain.dao.hibernate.MyDaoImpl" >
<property name="sessionFactory"><ref bean="mySessionFactory" />
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager"/>
<bean id="myServiceTarget"
class="com.xxx.yyy.service.admin.MyServiceImpl">
<property name="myDao"><ref bean="myDao"/></property>
</bean>
<bean id="myService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref bean="transactionManager" />
</property>
<property name="target"><ref local="myServiceTarget" /></property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
my classes:
Code:
public abstract class MyBaseDao extends HibernateDaoSupport {}
public class MyDaoImpl extends MyBaseDao {
public void save(MyObject obj) throws DataAccessException {
this.getHibernateTemplate().saveOrUpdate(obj);
}
}