Aktualizowanie pola ostatniej modyfikacji podczas podmieniania tylko jednego pola

0

Chodzi o to, że mam encję z polem

    @UpdateTimestamp
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "updateDate")
    private Date updateDate;

które podmienia czas na obecny podczas updatowania całego obiektu. Robię to za pomocą sesji w Hibernate, ale to bez znaczenia. Ale teraz chciałem spróbować zrobić coś w Spring Data i stworzyłem repozytorium które ma ustawić mi tylko email dla danego uzytkownika

    @Transactional
    @Modifying
    @Query("update User e set e.email = :email where e.id = :id")
    public void setEmail(@Param("id") Long id, @Param("email") String email);

i chodzi o to, że oczywiście zapisywanie email działa, lecz nie jest automatyzowany czas ostatniej modyfikacji. Czyli działa aktualizowanie daty ostatniej modyfikacji podczas updatowania całego obiektu, ale podczas podmiany jakiegoś pojedynczego pola już nie. Da rady jakoś to zrobić, aby taka podmiana jednego pola aktualizowała czas. W ostateczności będę musiał ustawiać to ręcznie.

0

W zapytaniu update musisz dodac nietylko pole email ale też pole data_modyfikacji i ustawić ją jako now().
update User e set e.email = :email, data_modyfikacji= now() where e.id = :id

1 użytkowników online, w tym zalogowanych: 0, gości: 1