正如在博客/书籍(例如Mark Richards的Java事务设计策略)中提到的,读操作必须具有propagation.supports属性。
提前谢谢你。
编码器,以下是配置:
<tx:annotation-driven transaction-manager="txManager"/>
<context:component-scan base-package="com.myapps.service.impl" />
<bean id="txManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driverClassName}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>.....</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${db.dialect}</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
我不同意对读操作使用支持。必需使用。
为什么我需要在Hibernate中使用事务进行只读操作? 以下事务是否在数据库中设置了锁? 从数据库获取的示例代码: 我可以使用会话吗。close()而不是tx.commit()?
问题内容: 参考Spring文档: 任何RuntimeException都会触发回滚,而任何选中的Exception都不会 引用javapractices.com 未经检查的异常: 表示程序中的缺陷(错误)-通常将无效的参数传递给非私有方法。引用Gosling,Arnold和Holmes的《 Java编程语言》:“未经检查的运行时异常表示的条件通常可以反映程序逻辑中的错误,并且不能在运行时从中合理
问题内容: 为什么在Hibernate中需要事务才能进行只读操作? 以下事务是否在数据库中设置了锁定? 从数据库获取示例代码: 我可以 代替使用吗? 问题答案: 您实际上可能有理由将事务标记为只读。 阅读交易看起来确实很奇怪,在这种情况下,人们通常不会标记交易方法。但是JDBC仍然会创建事务,只是如果未显式设置其他选项,它将可以正常工作。 但是,不能保证您的方法不会写入数据库。如果将method标
问题内容: 我们有一个大型Angularjs 1.6应用程序,该应用程序的$ rootscope分散在整个应用程序的过滤器,服务,路由等200多个位置中。因此需要对其进行重构,但是我不确定如何知道何时将其删除。什么时候在应用程序中使用$ rootscope是最佳实践? 我已经阅读了所有内容,从没读过,到用它来存储变量,我都以为是在控制器之间共享数据。从那以后,我读到最好在这种用例中使用工厂/服务,
问题内容: 为什么在Hibernate中需要事务处理才能进行只读操作? 以下事务是否在数据库中设置了锁定? 从数据库获取示例代码: 我可以 代替使用吗? 问题答案: 你实际上可能有理由将事务标记为只读。 阅读交易看起来确实很奇怪,在这种情况下,人们通常不会标记交易方法。但是JDBC仍然会创建事务,只是如果未明确设置其他选项,它将可以正常工作。 但是,不能保证你的方法不会写入数据库。如果将metho
你好,虽然我读了很多其他答案,但我不明白如何关闭BufferedReader而不发送输入。这是我程序的阻塞部分: 当我从主线程调用“endListing()”时,程序终止--但不会在用户输入任何内容之前终止。我想让程序立即终止--如何启动这个BufferdReader(像BufferedReader一样创建(新的InputStreamReader(System.in))? 我试图在主线程中的这个线