Обновление Spring Data JPA: предпочтительный способ - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь обновить только три столбца таблицы с 36 столбцами, используя spring data jpa.Я спорю о следующих двух подходах и провел довольно исследование, но не смог прийти к выводу, какой из них предпочтителен. Однако я склоняюсь ко второму подходу таким образом, что мне не нужно создавать класс сущностей с @Column аннотацией и getters/setters.

Первый подход

с использованием spring data jpa Сначала я получу объект сущности с помощью id, обновлю поле и сохраню его.

MyObject object= myRepository.getOne(id);
object.setName("updated Name);
myRepository.save(object);

Второй подход

@Repository
  public interface MyRepository extends JpaRepository<MyObject  , Long> {

     @Query("update MyTable c set c.name= :name WHERE c.id = :id")
     void updateName(@Param("id") Long id, @Param("name") String name);

  }

Какой из них является предпочтительным способом решения проблемы, как в моем случае.

1 Ответ

0 голосов
/ 05 марта 2019

getOne(id) получает только эталонный (прокси) объект и не извлекает его из БД.По этой ссылке вы можете установить то, что вы хотите, и при сохранении () он будет делать только оператор SQL UPDATE.В то время как второй подход извлекает значения из БД, что, по моему мнению, требует больших затрат.

Вы можете обратиться this для внутренней работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...