private void updateTempDate(List<ElBizInParkBooking>list) {
for (ElBizInParkBooking elBizInParkBooking : list) {
ElBizInParkBooking new_ElBizInParkBooking = inParkDaoImpl.getInParkBookingById(elBizInParkBooking.getInParkBookingId());
String startTime = elBizInParkBooking.getDispacthTime().split("-")[0];
String endTime   = elBizInParkBooking.getDispacthTime().split("-")[1];
new_ElBizInParkBooking.setTempStartDate(DateUtils.formatDateFromString(DateUtils.dateToString(new Date(), "yyyy-MM-dd"),startTime));
new_ElBizInParkBooking.setTempEndDate(DateUtils.formatDateFromString(DateUtils.dateToString(new Date(), "yyyy-MM-dd"),endTime));
inParkDaoImpl.update(new_ElBizInParkBooking);
}
}
service层中的dispacth方法调这个updateTempDate方法.updateTempDate中循环更新elBizInParkBooking .这个没问题.同样的操作在别的地方如:service层中的disPatchAll调用generalInstruction public void disPatchAll(String years) {
String[] days_to_show_format = years.split(",");
List<ElBizInParkBooking>all_result = getAllResult(days_to_show_format,null);
for (ElBizInParkBooking elBizInParkBooking : all_result) {
elBizInParkBooking.setFormatBDate(DateUtils.dateToString(elBizInParkBooking.getTempStartDate(), "yyyy"));
elBizInParkBooking.setDispacthTimeId(elBizInParkBooking.getTempDateId());
elBizInParkBooking.setBStartTime(DateUtils.dateToString(elBizInParkBooking.getTempStartDate(), "HH:mm:ss"));
elBizInParkBooking.setBEndTime(DateUtils.dateToString(elBizInParkBooking.getTempEndDate(), "HH:mm:ss"));
generalInstruction(elBizInParkBooking);
}
}
generalInstruction 中进行批量更新
public void generalInstruction(ElBizInParkBooking inParkBooking){
...
   
inParkDaoImpl.update(new_InParkBooking);
// inParkDaoImpl.flush();
}
老是只更新最后一个记录.如果加上flush的话就没问题.但是这样的话.事务就没意义了..相关的事务配置文件:
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation">
<value>classpath:ehcache.xml</value>
</property>
</bean>


<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean> <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>jdbc.properties:
connection.driver_class=oracle.jdbc.driver.OracleDriver#connection.url=jdbc:oracle:thin:@192.168.131.33:1521/test
connection.url=jdbc:oracle:thin:@localhost:1521:orcl
connection.username=xx
connection.password=xxxpool.c3p0.acquire_increment=2
pool.c3p0.max_size=20
pool.c3p0.min_size=2
pool.c3p0.preferred_test_query='SELECT 1'
pool.c3p0.idle_connection_test_period=18000
pool.c3p0.max_idle_time=25000hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.hbm2ddl.auto=false
#update
hibernate.use_outer_join=true
hibernate.max_fetch_depth=3
hibernate.cache.use_query_cache=false
hibernate.cache.provider_class=net.sf.ehcache.hibernate.EhCacheProvider
hibernate.cache.use_second_level_cache=false
hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory求高手帮忙看看.