我如何获得Hibernate来生成Oracle的FOR

我如何获得Hibernate来生成Oracle的FOR

本文介绍了我如何获得Hibernate来生成Oracle的FOR UPDATE WAIT 10语法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样一行代码:

  final Foo foo =(Foo)session.get(Foo.class ,id,LockMode.UPGRADE); 

这会生成一个 SELECT .. FOR UPDATE

然而,我只愿意等待10秒钟来获得锁定,因为我想要一个 SELECT .. FOR UPDATE等待10 。如何获得hibernate来生成这个?

解决方案

解答方案

答案是使用 class with SetTimeout()而不是LockMode。



为此,我们升级到Hibernate 3.6才发现它已经被Oracle破坏。 / p>

I have a line of code like this:

final Foo foo = (Foo)session.get( Foo.class, id, LockMode.UPGRADE );

This generates a SELECT .. FOR UPDATE.

However, I'm only willing to wait for 10 seconds to obtain the lock and there for I would like a SELECT .. FOR UPDATE WAIT 10. How can I get hibernate to generate this?

解决方案

The answer is to use the LockOptions class with SetTimeout() rather than LockMode.

For this, we upgraded to Hibernate 3.6 only to find it is broken for Oracle.

这篇关于我如何获得Hibernate来生成Oracle的FOR UPDATE WAIT 10语法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 10:58