繁体   English   中英

即使使用Hibernate / Postgresql / JDBC,也需要手动锁定数据库吗?

[英]Manually locking of DB necessary even if I use Hibernate/Postgresql/JDBC?

抱歉,如果以前已经回答过这个问题,请问一下,但是我(从另一个潜在的菜鸟那里)听说Hibernate已经/有某种连接池管理器,它也可以处理数据库的锁定。 现在,我读到它在Hibernate 3中已被废除,所以作为菜鸟,我非常困惑使用什么。

我有一个Postgresql数据库,其中有多个分别使用max的客户端。 在任何给定时间建立一个数据库连接。 我使用JDBC,但想转到Hibernate。

因此,如果发生两个并发更新操作,我不知道这是否由DBMS正确处理。 我考虑过手动锁定数据库表,以防有人对其进行操作,但是必须有更好的方法。

我仅使用简单的单个sql语句(有时是准备好的语句)进行操作。 没有大的更新,只有单行更新。

您是否知道一般应如何解决? 这甚至有问题吗?

对于一个真正有用的答案,这太笼统了,我真的应该就此投票。 但我会尽力帮助。

连接池与锁定无关。 这两个是不相关的主题。

我认为您正在模糊地尝试引用Hibernate中的乐观并发控制 这是普通行锁定的替代策略,具有不同的优点和缺点。

有关更多信息,请参见Hibernate文档 ,以及有关开放式并发控制Wikipedia文章

我还写了一篇有关该主题的近期博客文章,该文章可能有用。

但是,最重要的是,除了真正理解应用程序和数据库中的并发性之外,别无他法。 非常强烈建议阅读PostgreSQL文档章并发控制 的细节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM