Spring Data JPA - Почему изменения в возвращенном объекте автоматически сохраняются?

Я представляю вопрос с примером.

Утверждают, что у нас есть репозиторий, такой как ниже:

public interface ExampleObjectRepository extends CrudRepository {

}

РасширяяJpaRepository интерфейс,ExampleObject хранилище наследует следующий метод:

T findOne(ID id);

Теперь я заметил, что, если я получаю ссылку на ExampleObject после вызова этого метода, любые манипуляции с этим методом автоматически сохраняются в базе данных, например:

ExampleObject pointInCase = exampleObjectRepository.findOne(1L);
pointInCase.setName("Something else");

Читая вокруг темы, я понимаю, что это означает, чтоExampleObject экземпляр есть.not detached

Это противоречит моим ожиданиям. Я ожидал, что мне нужно будет использовать метод сохранения, унаследованный отCrudRepository чтобы сохранить изменения:

T save(T entity);

Будет ли кто-нибудь достаточно любезен, чтобы подтвердить, что объекты, возвращенные из репозитория Spring Data JPA, остаются присоединенными в качестве стандарта, и объяснить, как использовать API для пометки метода в хранилище, чтобы он возвращал только отдельные ссылки?

Я представляю, что изменение сущностиСостояние s также может изменить свое определение, когда оно используется с указаннымsave(T entity) метод, поэтому я также был бы признателен за понимание того, как обрабатываются для обновления.

Ответы на вопрос(3)

Ваш ответ на вопрос