[英]Hibernate: Handling Multiple Transactions?
我正在尝试并且非常想了解Hibernate。 如果两个或多个用户尝试使用不同PC上的相同表格在同一表格中同时插入内容,
让我们命名用户A和B。
用户A的请求将通过事务更新数据库,并且在该事务结束时,更改将默认提交给数据库。(当然,您可以更改)
用户B的请求也将在另一个事务中执行,最后,该请求也将提交给db。
提交到数据库时,将锁定并发控制,它取决于数据库和休眠配置。
使用开放式锁定时,您将一个特殊的属性(一个数字,一个时间戳)映射为一个版本(因此您实际上有一个列)。 检索实体时将读取此版本,并在更新过程中将其包含在where子句中并由Hibernate递增。
使用悲观锁定时,Hibernate会锁定记录供您独占使用,直到完成记录为止
希望这可以帮助。
Hibernate可以为您执行自动乐观并发控制。 它可以自动检测在用户思考时间内是否发生了并发修改。 在对话结束时进行检查。这称为自动版本控制。 交易管理将处理这些,我们无需担心
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.