Я представляю вопрос на примере.
Убедитесь, что у нас есть репозиторий, например, ниже:
public interface ExampleObjectRepository extends CrudRepository<ExampleObject, Long> {
}
Расширяя интерфейс JpaRepository, репозиторий ExampleObject наследует следующий метод:
T findOne(ID id);
Теперь я заметил, что если я получаю ссылку на объект ExampleObject после вызова этого метода, любые манипуляции, которые я делаю с этим методом, автоматически сохраняются в базе данных, например:
ExampleObject pointInCase = exampleObjectRepository.findOne(1L);
pointInCase.setName("Something else");
Прочитав тему, я понимаю, что это означает, что ExampleObject экземпляр not detached.
Это противоречит моим ожиданиям. Я бы ожидал, что мне нужно будет использовать метод сохранения, унаследованный от CrudRepository, чтобы сохранить изменения:
T save(T entity);
Может ли кто-нибудь быть достаточно любезен, чтобы подтвердить, что объекты, возвращенные из репозитория данных JPA Spring, остаются прикрепленными в качестве стандарта и объясняют, как использовать API для отметки метода в репозитории, так что он возвращает только отобранные ссылки?
Я предполагаю, что изменение состояния объекта также может изменить его определение, когда оно используется с указанным методом save(T entity), поэтому я также хотел бы понять, как обрабатывается идентификация для обновлений.