为什么在Hibernate中需要事务才能进行只读操作?
以下事务是否在数据库中设置了锁定?
从数据库获取示例代码:
Transaction tx = HibernateUtil.getCurrentSession().beginTransaction(); // why begin transaction?
//readonly operation here
tx.commit() // why tx.commit? I don't want to write anything
我可以session.close()
代替使用tx.commit()
吗?
您实际上可能有理由将事务标记为只读。
autocommit=true
如果未显式设置其他选项,它将可以正常工作。@Transactional(readonly=true)
,Spring会将JDBC事务设置为只读模式,因此您将决定在该事务范围内是否 实际上 可以写入DB。如果您的体系结构繁琐,并且某些团队成员可能选择将修改查询放在不希望出现的地方,则此标志会将您指向有问题的地方。综上所述-您可以双向进行,但您需要了解后果。
问题内容: 为什么在Hibernate中需要事务处理才能进行只读操作? 以下事务是否在数据库中设置了锁定? 从数据库获取示例代码: 我可以 代替使用吗? 问题答案: 你实际上可能有理由将事务标记为只读。 阅读交易看起来确实很奇怪,在这种情况下,人们通常不会标记交易方法。但是JDBC仍然会创建事务,只是如果未明确设置其他选项,它将可以正常工作。 但是,不能保证你的方法不会写入数据库。如果将metho
为什么我需要在Hibernate中使用事务进行只读操作? 以下事务是否在数据库中设置了锁? 从数据库获取的示例代码: 我可以使用会话吗。close()而不是tx.commit()?
问题内容: 我一直在研究只读数据库和读写数据库事务的性能。MySQL服务器通过缓慢的VPN链接处于远程状态,因此我很容易看到事务类型之间的差异。这是与连接池有关的,我知道它是基于比较第一个和第二个JDBC调用而工作的。 当我将Spring AOP配置为在我的DAO调用上使用只读事务时,与读写相比,调用的 速度要慢 30-40%: 与: 看一下tcpdump,似乎只读事务正在与MySQL进行来回通信
问题内容: 我认为这个问题已经存在,但是我找不到。 我不明白,为什么必须要有一个功能接口才能使用lambda。考虑以下示例: 这可以正常工作,但是如果您取消注释行,则不会。为什么?以我的理解,编译器应该能够区分这两种方法,因为它们具有不同的输入参数。为什么我需要一个功能接口并炸毁我的代码? 编辑:链接的重复项没有回答我的问题,因为我在询问不同的方法参数。但是在这里,我得到了一些非常有用的答案,这要
问题内容: 我正在使用Wildfly 10.0.0 Final,Java EE7,Maven和JPA 2.1。当我查询数据库中的记录时,它可以正常工作并列出员工,但是当我尝试保留新员工时,它给了我以下异常: 我正在尝试使用JSF和CDI bean来实现。我有一个JTA数据源,已在persistence.xml文件中对其进行配置: 可以在下面看到CDI bean。比较简单,有一种方法可以列出25名雇
本文向大家介绍HTML5 为什么只需要写 ?相关面试题,主要包含被问及HTML5 为什么只需要写 ?时的应答技巧和注意事项,需要的朋友参考一下 1) HTML5不基于SGML,因此不需要对DTD进行引用,但是需要DOCTYPE来规范浏览器的行为(让浏览器按照他们应该的方式来运行); 2) HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型;