Spring Data JPA: Como atualizar um modelo com elegância?

Meu modelo é assim:

@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @Column(name="email")
    private String email;

    @Column(name = "weblink")
    private String webLink;

    //getter & setter
}

coletamos dados de formulário ou móveis por solicitação http, e o springmvc fará esses dados para um usuário semelhante ao modelo.

por exemplo, eu tenho uma solicitação como esta:

http://localhost:8080/update?id=1919&[email protected]

No contoller, o URL da solicitação e seus parâmetros serão automaticamente transferidos para umUser objeto.

@RequestMapping(method = RequestMethod.GET, value = "/update0")
public User update(@ModelAttribute("User") User user){

    System.out.println(user.getId());
    System.out.println(user.getEmail());
    System.out.println(user.getWebLink());

    return userRepository.save(test);
}

se eu tiver um registro no mysql cujo id seja 1919, e as colunas (id, email, weblik) tiverem todos valores.

como você vê, o objeto de usuário que passou pela web ou celular tem duas propriedades

http://localhost:8080/update?id=1919&[email protected]

id e email têm valores e o link da web não.

Então, se eu executarsave método, o email das colunas será atualizado para[email protected], e o campo weblik também será atualizado paraNULL, mas não quero atualizar este campo, só quero atualizar o campo de email.

Eu tenho duas maneiras de resolver o problema, mas nem todas são elegantes.

5.1 carregar primeiro o objeto do usuário e atualizar

User userExist = userRepository.findOne(user.getId());
userExist.setEmail(user.getEmail());

//or using 
//BeanUtil.copyProprty(formDto,modle)

userRepository.save();

5.2 usando@DynamicUpdate, mas não está funcionando.

Existe outra maneira de atualizar o modelo do usuário e não fazer algum trabalho extra.

Desde já, obrigado.

questionAnswers(3)

yourAnswerToTheQuestion