hi,i'm new in hibernate and spring,this is my config,but its not in a transaction,it seems has no transaction,
applicationContext.xml file:
hibernate file:Code:<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > <property name="configLocation" value="classpath:jbpm.hibernate.cfg.xml" /> <property name="dataSource" ref="dataSource" /> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="*"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut expression="execution(* com.test.TransAction.*(..))" id="txPointcut"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/> </aop:config> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@172.17.1.1:1521:database" /> <property name="username" value="test" /> <property name="password" value="test" /> </bean> <bean id="transAction" class="com.test.TransAction"> <property name="sessionFactory" ref="sessionFactory" /> </bean>
test class:Code:<hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> <property name="hibernate.format_sql">false</property> <property name="hibernate.jdbc.batch_size">0</property> </session-factory> </hibernate-configuration>
when it runs,the first sql is updated,and the second sql throws exception,but first sql cannt rollback,what's wrong with my config,can anyone help me? thanks a lotCode:public class TransAction extends HibernateDaoSupport { private SessionFactory sessionFactory; public void testTrans3() throws RuntimeException{ Session session=this.getSession(); SQLQuery query1=session.createSQLQuery("update deployment set timestamp_='20120219'"); query1.executeUpdate(); SQLQuery query=session.createSQLQuery("update deployment set timestamp_='20120301089089058795789'"); query.executeUpdate(); } }


Reply With Quote