Bonjour la communauté !
Je suis coincé sur mon projet et je souhaite votre aide.

J'ai plusieurs objets Java qui ont des champs de type java LocalDate. J'utilise hibernate, spring et mysql pour la persistance.

Lorsque j'enregistre un objet avec la valeur du champ LocalDate, par exemple : 2022-10-02, spring enregistre 2022-10-01. Lors de la récupération il récupère bien la valeur enregistrée.

Et si je change le type du champ LocalDate en java Date, spring fait l'inverse c'est à dire :
Lors de l'enregistrement, spring sauvegarde la bonne valeur : 2022-10-02, mais lors de la récupération, j'obtiens : 2022-10-01.

Au départ je pensais que c'était dû au fuseau horaire. Après vérification je me rend compte que non.
Puisque la même opération je le fais en PHP sans problème sur la même machine.

Voici la déclaration d'un de mes champs date et les annotations :

@JsonFormat( pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING )
@Column(columnDefinition = "DATE")
private LocalDate date ;

Ou

@JsonFormat( pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING )
@Column(columnDefinition = "DATE")
private Date date ;

Pourquoi spring fait ce décalage et comment y remédier ?

Merci d'avance pour votre assistance.