美文网首页
使用Spring JPA Save 方法注意

使用Spring JPA Save 方法注意

作者: 暗夜行者 | 来源:发表于2020-02-03 18:29 被阅读0次

无论是实现功能较基本的CrudRepository接口 或者 可以提供分页等复杂操作的JpaRepository接口,所调用的save方法都是save+merge的功能。
需要注意若是一次更新操作,新传入的实体中有字段是null也将覆盖原有的数据,将原有的数据更新为null。
更新操作切记检查每个值包括Null覆盖的情况。

拓展学习: ReentrantReadWriteLock 可重入读写锁,分为读锁和写锁,使用举例(摘自官方实现源码):
private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
private final Lock read = lock.readLock();
private final Lock write = lock.writeLock();

public E getPersistentEntity(TypeInformation<?> type) {

    Assert.notNull(type, "Type must not be null!");

    try {

        read.lock();

        Optional<E> entity = persistentEntities.get(type);

        if (entity != null) {
            return entity.orElse(null);
        }

    } finally {
        read.unlock();
    }

    if (!shouldCreatePersistentEntityFor(type)) {

        try {
            write.lock();
            persistentEntities.put(type, NONE);
        } finally {
            write.unlock();
        }

        return null;
    }

    if (strict) {
        throw new MappingException("Unknown persistent entity " + type);
    }

    return addPersistentEntity(type).orElse(null);
}

相关文章

网友评论

      本文标题:使用Spring JPA Save 方法注意

      本文链接:https://www.haomeiwen.com/subject/esnhxhtx.html