最近一段時間潛心自學struts,spring,hibernate框架,寫了一些獨立框架的例子還算順利,今天試著將spring與hibernate整合,遇到一些問題,故寫此文。
主要功能:完成數(shù)據(jù)庫表的查、增、刪、改操作。
問題描述:查詢功能一切正常,但是在增、刪、改操作中發(fā)現(xiàn),數(shù)據(jù)庫表中數(shù)據(jù)沒有改變,查看控制臺日志也沒有任何異常發(fā)現(xiàn),納悶了好久,仔查檢查日志,發(fā)現(xiàn)在新增操作中表id有在自增,由此確定是問題出在事務沒有提交。將事務配置上去后出現(xiàn)如下報錯:java.lang.ClassCastException: $Proxy1,百度上搜到一文,在業(yè)務類如果實現(xiàn)了接口,得增加如下代碼
<property name="proxyTargetClass">
   <value>true</value>
</property>
果然如此,再次運行,成功了!
以下是我applicationContext.xml的內(nèi)容:

2008年5月30日9:47:21?

<?<SPAN class=hilite2>xml</SPAN> version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
 <bean id="mySessionFactory"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  <property name="configLocation">
   <value>classpath:hibernate.cfg.<SPAN class=hilite2>xml</SPAN></value>
  </property>
 </bean>
 <bean id="myTransactionManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref bean="mySessionFactory" />
  </property>
 </bean>
 <bean id="myBaseTransactionProxy"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  abstract="true">
  <property name="transactionManager" ref="myTransactionManager" />
  <property name="transactionAttributes">
   <props>
    <prop key="*">PROPAGATION_REQUIRED</prop>
    <!--
     <prop key="insert*">PROPAGATION_REQUIRED</prop>
     <prop key="save">PROPAGATION_REQUIRED</prop>
     <prop key="update*">PROPAGATION_REQUIRED</prop>
     <prop key="edit*">PROPAGATION_REQUIRED</prop>
     <prop key="del*">PROPAGATION_REQUIRED</prop>
     <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
     <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
     <prop key="disPlay*">PROPAGATION_REQUIRES_NEW</prop>
    -->
   </props>
  </property>
 </bean>
 <bean id="UsersDAO" class="com.notepad.dao.UsersDAO">
  <property name="sessionFactory">
   <ref bean="mySessionFactory" />
  </property>
 </bean>
 <bean id="userTarget" class="com.notepad.bussies.UserService">
  <property name="usersDao">
   <ref local="UsersDAO" />
  </property>
 </bean>
 <bean id="UserService" parent="myBaseTransactionProxy">
  <property name="proxyTargetClass">
   <value>true</value>
  </property>
  <property name="target">
   <ref local="userTarget" />
  </property>
 </bean>
</beans>


柴油發(fā)電機
發(fā)電機
柴油機
柴油發(fā)電機
13636374743(上海)
13291526067(嘉興)