Возвращает ли CrudRepository.save значение NULL для пружинных данных 1.13.18.RELEASE - PullRequest
0 голосов
/ 04 апреля 2020

Я понимаю, что для текущей версии (2.x.x) spring-data-commons гарантировано , что возвращаемое значение CrudRepository.save() никогда не будет нулевым. Однако как насчет более старых версий, в частности 1.13.18.RELEASE ?

Если более старая версия действительно гарантирует возврат ненулевых значений, то она делает следующий фрагмент кода бесполезным, верно ?

        Entity savedEntity = someRepository.save(entity);
        if (savedEntity == null) {
            // throw some checked exception stating that the save failed..
        }

И если более старая версия не гарантирует возврат ненулевого значения, то какой сценарий приведет к возврату нулевого значения?

Обновить : Поскольку мой вопрос касается реализации CrudRepository, важно отметить, что я использую 1.11.18.RELEASE из spring-data-jpa. Я хочу знать о поведении функции save для этой версии.

1 Ответ

0 голосов
/ 04 апреля 2020

Согласно реализации , он всегда будет возвращать значение или выдавать исключение

Обновление , реализация для 1.11.18.RELEASE. Из репозитория GitHub

@Transactional
public <S extends T> S save(S entity) {
    if (this.entityInformation.isNew(entity)) {
        this.em.persist(entity);
        return entity;
    } else {
        return this.em.merge(entity);
    }
}
...