gpt4 book ai didi

java - 在 Hibernate 中锁定集合

转载 作者:行者123 更新时间:2023-12-02 08:08:50 26 4
gpt4 key购买 nike

我有一个 session bean 方法,它使用 Hibernate 将子项添加到实体的索引集合中。然而,由于可能有多个线程同时访问该方法,在一些奇怪的情况下,重复的索引会被分配给不同的子项(Hibernate 中的错误?我不知道)。

为了防止这种情况,我想尝试锁定整个实体及其集合,以便其他线程在另一个线程更新它时无法修改它。我知道我们可以为实体设置锁定模式,但是集合怎么样?它可以锁定任何其他事务以防止添加新的子事务吗?

请赐教!提前致谢。

最佳答案

也许您可以尝试使用同步集合包装器。您可以使用 Collections 类 ( Collections ) 中的静态方法。例如:

List<String> myList = Collections.synchronizedList(new List<String>());

对于实体级别的锁定,锁定在实体上的同步代码块应该可以解决问题。

 synchronized (entityInstance) 
{
...
}

关于java - 在 Hibernate 中锁定集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7762350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com