今天,碰到这个问题,并困扰我了好长时间,最终发现竟是没获取到service,直接在service里用this调用dao层,实属大忌啊
刚开始使用is开头,发现了如下原因:《引用》
总也找不到原因,后来突然发现,自己确实是没有配置事物,自己的那个判断操作的名字是:isCanRead();
是以“is”开头的方法名,而事物里就没有配置这个方法名,所以导致了错误,把这个加上后,配置文件如下:
<!-- baseTransactionProxy -->
<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager">
<ref bean="transactionManager"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
后来修改后还不行,发现是跳过service直接调用dao层,肯定不行
希望对大家有所帮助