org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
是因为在sevice中没有加入@Transactional注解,加入后会自动引入
import org.springframework.transaction.annotation.Transactional;
Spring配置
<!-- 创建连接池 -->
<!-- 引入外部的jdbc属性文件 -->
<!-- 连接池 -->
<!-- 配置hibernate 3个步骤 -->
<!-- 注入连接池 -->
<!-- 配置hibernate属性 -->
<!-- 加载hibernate映射文件 -->
<!-- 配置事务管理 -->
<!-- 开启事务注解 -->
<!-- action类(控制层类) -->
<!-- service类(业务逻辑类) -->
<!-- Dao类(数据访问层) -->
<!-- 引入外部的属性文件 -->
<context:property-placeholder location="classpath:jdbc.properties" />
<!-- 连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置hibernate -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<!-- 注入连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置hibernate属性 -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<!-- 加载hibernate映射文件 -->
<property name="mappingResources">
<list>
<value>com/ming/domain/Product.hbm.xml</value>
</list>
</property>
</bean>
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- action类 -->
<bean id="action" class="com.ming.action.ProductAction" scope="prototype">
<property name="productService" ref="productService"></property>
</bean>
<!-- service类(业务逻辑类) -->
<bean id="productService" class="com.ming.service.ProductService">
<property name="productDao" ref="productDao"></property>
</bean>
<!-- Dao类(数据访问层) -->
<bean id="productDao" class="com.ming.dao.ProductDao">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦