java - 如何使用 JPA 以线程安全的方式保存或更新对象?

标签 java jpa persistence

如何使下面的代码线程安全?

objects.forEach(object -> {
            Boolean objectExists = objectRepository.existsByObjectNameAndFormatAndLocale(
                    object.getObjectName(),
                    object.getFormat(),
                    object.getLocale());
            if (!objectExists){
                objectRepository.save(object);
            }
        });

最佳答案

请将下面的代码放入同步块(synchronized block)中,执行下面的代码需要当前类对象锁。

 synchronized (this) {
      //code 
    }

希望它对你有用

关于java - 如何使用 JPA 以线程安全的方式保存或更新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59425521/

相关文章:

javascript - 在 HTML 页面之间维护 Javascript 变量以发送到数据库?

java - 当实体不包含在持久化单元中时,@Entity注释有什么用

java - 迭代字符串列表以获得最短的单词?

java - 使用 Eclipse 调试 OpenJDK 源代码

java - JPA - 非主键字段上的@OneToOne 关系不起作用

java - JPA实体加入问题(我认为)

java - jpa 创建新实体同时删除具有相同主键值的旧实体

flutter - 我无法将数据持久保存在HiveBox的本地存储中,当我重新加载页面时,本地数据库中的所有内容都为空

java - 在文本文件中查找一行并编辑它

Java List <T> T[] toArray(T[] a) 实现