环境:Spring 4,Hibernate 4,JPA
如果调用builderdao.delete(实体),我们会在线程“main”org.springframework.dao.invaliddataaccessapiusageException中得到异常:只读模式(flushmode.manual)中不允许写操作:将会话转换为flushmode.commit/auto或从事务定义中删除“read only”标记。配置设置如下所示
我想用JPA,怎么解决?
<bean id="builder" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="interceptorNames">
<value>transactionInterceptor,builderAOP</value>
</property>
</bean>
<bean id="builderAOP" class="my.aop.BuilderImp">
<property name="corporateDao" ref="corporateEventDao"/>
</bean>
<bean id="corporateEventDao" class="my.jdbc.JdbcDaoImpl">
<property name="dataSource" ref="dataSource"/>
<property name="hibernateTemplate"><ref bean="hibernateTemplate"/></property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
事务拦截器
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<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="delete*">PROPAGATION_REQUIRED</prop>
</props>
</property></bean>
TransactionManager
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
包装sessionFactory
<bean id="sessionFactory" factory-bean="entityManagerFactory" factory-method="getSessionFactory" />
EntityManagerFactory
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>xxxx.hbm.xml</value>
</list>
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.connection.useUnicode">true</prop>
<prop key="hibernate.connection.characterEncoding">UTF-8</prop>
<prop key="hibernate.jdbc.batch_size">1000</prop>
<prop key="hibernate.jdbc.fetch_size">100</prop>
<prop key="use_streams_for_binary">true</prop>
<prop key="hibernate.connection.autoReconnect">true</prop>
</props>
</property>
</bean>
这能帮到你吗?补充文件
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="batchSave*" propagation="REQUIRED"/>
<tx:method name="batchDelete*" propagation="REQUIRED"/>
<tx:method name="get*" propagation="REQUIRED" read-only="true"/>
<tx:method name="find*" propagation="REQUIRED" read-only="true"/>
<tx:method name="list*" propagation="REQUIRED" read-only="true"/>
<tx:method name="query*" propagation="REQUIRED" read-only="true"/>
<tx:method name="page*" propagation="REQUIRED" read-only="true"/>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
我的样本代码在这里 尝试运行junit测试时,收到以下错误消息。 JAVAlang.IllegalStateException:未能加载ApplicationContext 原因:org。springframework。豆。工厂BeanCreationException:创建名为“nameDao”的bean时出错:调用init方法失败;嵌套的异常是java。lang.IllegalArgument
我还没有找到在QueryDSL中声明这种SQL的任何方法。我能够编写两个select语句,但是我仍然无法将它们与结合起来。 最后,我想检索一个与给定查询匹配的ID列表。通常,相交的数量可以是20或30左右,这取决于我要搜索的键/值对的数量。 有没有人知道如何使用QueryDSL执行类似的操作?
我正在将Spring Boot项目与Spring批处理和数据jpa项目集成。所有与作业和数据配置相关的东西都是正确的,除了将我的作业编写器结果保存在数据库中。在我读取文件并对其进行处理后,我无法将其写入mysql数据库。没有错误,但也没有插入。有趣的是我的数据源已配置。因为在插入之前,我可以从数据库中获取示例记录。请协助我解决这个问题。 我的申请。属性: 批次配置: 道类: 作家类: temPer
我的项目是在Windows-SpringIDE-TomcatV8上进行的。0用于windows,MySql5。该项目还涉及java7、Tomcat7。我所有的课都是自动注释的。问题是,当我在Centos上部署project时,我有java8、Tomcat8和一个异常。请提出一些解决问题的建议。 以下是linux上的例外情况: 组织。springframework。豆。工厂BeanCreationE
描述: 建立一个基于SpringMVC的JavaEE项目 运行该项目,效果良好。 添加Hibernate4框架库支持 问题,异常 1)在我将“data source”bean添加到SpringMVC配置文件后,它总是在启动时抛出。 ServletContext资源[/WEB-INF/dispatcher servlet.XML]的XML文档中的第45行无效;嵌套的异常是org.xml.sax。SA
我在Hibernate4中使用JTA事务管理器。有人知道这个问题吗?在执行刷新时,我面临错误。 下面是我面临上述问题的一段代码。 XML: