首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

帮手看下SSH,该如何解决

2012-03-31 
帮手看下SSHbean iduserDAOProxy classorg.springframework.transaction.interceptor.TransactionPr

帮手看下SSH
<bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
  <property name="transactionManager">
  <ref bean="transactionManager" />
  </property>
  <property name="target">
  <ref local="usersDAO" />
  </property>
  <property name="transactionAttributes">
  <props>
  <prop key="insert*">PROPAGATION_REQUIRED</prop>
  <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
  <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
  </props>
  </property>
 </bean>

<bean id="usersDAO" class="my.dao.hibernate.UsersDAO"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="usersManager" class="my.service.impl.UsersManager"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="usersDAO">
<ref bean="userDAOProxy" />
</property>
</bean>

请问各位:spring的事务代理是这样子用的吗??

报错:
Failed to convert property value of type [$Proxy3] to required type [my.dao.hibernate.UsersDAO] for property 'usersDAO'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [$Proxy3] to required type [my.dao.hibernate.UsersDAO] for property 'usersDAO': no matching editors or conversion strategy found



[解决办法]
你的my.dao.hibernate.UsersDAO这个bean需要设置属性proxyTargetClass为true,这样产生的代理对象才会instanceof原来的类。
在事务中加上下面语句
<property name="proxyTargetClass" >
<value>true</value>
</property>
表面proxy代理的是类而不是接口。

热点排行