为了账号安全,请及时绑定邮箱和手机立即绑定

ssh(Struts2.5.5+hibernate4.4+spring4.3.4)整合中的问题

标签:
Java
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人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
25
获赞与收藏
212

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消