当前位置: 首页 > 知识库问答 >
问题:

Java和Hibernate,在更新/写入期间锁定对象,但总是允许读取

贺雪松
2023-03-14

我的应用程序使用Java、HiberNate和IBMDB2数据库。我希望在更新和写入数据时使用悲观锁定,以便其他线程在尝试更新数据之前需要等待资源可用。但是,我希望线程始终能够读取数据(无论它是否被锁定,即事务对数据开放),并且读取操作永远不会锁定数据。在HiberNate和IBMDB2中,什么隔离级别可以实现这一点?谢谢。

共有1个答案

轩辕鸿
2023-03-14

不确定Hibernate,但在DB2端,您可以使用未提交的读取隔离级别或游标稳定性隔离以及激活的“当前提交”语义(后者在DB2LUW9.7和更高版本中可用)。

 类似资料:
  • 问题内容: 最近,我一直很烦人,但在Google和这个论坛上进行了一些研究之后,我仍然找不到能够解决我的问题的答案。 事情就是这样-有时,当我尝试使用hibernate更新或创建新对象时遇到以下错误: 真正奇怪的是,有时使用该方法更新对象会起作用,但是有时使用相同的对象并通过调用相同的方法却无法起作用,但这似乎取决于我如何在对象中获取对象。第一名。 示例:假设我有一个包含3个字段的表:id,类型,

  • 我理解读-获取(在它之后不进行后续读/写操作的重新排序)和写-释放(在它之前不进行读/写操作的重新排序)。我的q是:- 在读获取的情况下,它前面的写操作会被刷新吗 另外,在Java中,读获取和volatile读相同,写释放和volatile写相同吗? 为什么这很重要,让我们以写发布为例... 在这一点上,x是2还是1?这里,考虑准备好成为挥发性的。我知道挥发性之前的所有商店都将首先可见...然后只

  • 假设我有两条线。Thread1正在访问一个同步方法,同时,Thread2正在访问同一对象的另一个同步方法。据我所知,Thread2应该等到Thread1完成它的任务。我的问题是,Thread2是否在对象的等待线程列表中?对我来说似乎是这样,但Thread2不调用wait()方法,那么作为逻辑结果,它不应该在对象的等待线程列表中。如果它不在对象的等待线程列表中,那么Thread2的状态是什么?

  • 问题内容: 我有一个以下Java类,它也是一个Hibernate实体: 类别表示类别树中的节点。我正在实现一个允许CRUD类别的Web服务。例如,该接口具有创建类别树节点的功能,并且可以将类别ID作为参数传递。 我只想创建一个新的Category对象,并将其持久化到数据库中,而无需获取父对象。我的数据提供程序类如下所示: 我的问题是:如果假设我不会调用hibernate来为我获取父项(那将是愚蠢的

  • 问题内容: 当Hibernate 将 Java 对象 写入 SQL 列时,它将日期,计算机日期或日历对象(或其他日期)中指定的日期调整到哪个时区? 当Hibernate 读 的到日历对象,以哪个时区并把它翻译的日期? 问题答案: 当Hibernate将Java Calendar对象写入SQL TIMESTAMP列时,它将日期,计算机日期或Calendar对象(或其他日期)中指定的日期调整到哪个时区

  • 我正在使用FireBase实时数据库来设置一个简单的CRUD应用程序。 我正在设置规则,以便只有登录的用户才能写入请求部分。我一定是误会了奥特。uid。 在请求中,我设置了,但我无法写入数据。 我错过了什么?