问题一:
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL)
解决的方法:
代码:
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.coco.impl.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
</aop:config>
检查发现代码有误:expression="execution(* com.coco.impl.*.*(..)),方法写错了
-
第一个 * 表示方法返回值类型可以为任意类型
-
第二个 * 表示com.coco.impl包下面的任意一个类
-
第三个 * 表示impl包里下任何一个类的方法
-
后面小括号里面的两个 .. 表示该方法可以有0个或多个参数
问题二:
org.hibernate.service.UnknownUnwrapTypeException: Cannot unwrap to requested type [javax.sql.DataSource]
==>主要问题是:datesource和sessionFactory没有关联起来
解决的方法:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/spring_hibernate"/>
<property name="user" value="root"/>
<property name="password" value="1234"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
<property name="dataSource" ref="dataSource"/>
</bean>
问题三
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/spring_hibernate"/>
<property name="user" value="root"/>
<property name="password" value="1234"/>
</bean>
上面紫色标记的报com.mchange.v2.c3p0错误是因为需要导入mchange-commons-java-0.2.3.1.jar包
问题四
org.aopalliance.intercept.MethodInterceptor
缺少aopalliance-1.0.jar