Zła data podczas zapisu do bazy

0

Hej,
mam dziwny problem. Otóż posiadam w aplikacji encję reprezentującą następujące po sobie dni. Każdy element posiada kilka pół, które nie mają znaczenia w tym problemie, oraz pole date, które jest unique.

Poprzez UI udostępniam możliwość modyfikacji pół obiektu. Problem jednak występuje, kiedy próbuję zapisać zmodyfikowany obiekt do bazy. Dostaję exception o takiej treści:

Duplicate entry '2019-07-26' for key 'work_day_workday_date_uindex'

Próbuję zaktualizować encję dnia dzisiejszego, ale jak widać podczas próby update aplikacja słusznie zwraca uwagę, że chcę zduplikować istniejącą już w bazie datę. I słusznie mi na to nie pozwala, lecz ja wcale tego zrobić nie chcę. Pobieram z bazy prawidłowy dzień, zmieniam właściwość inną niż data i chcę zapisać zupdatowany obiekt. Z ciekawości wypisałem sobie wszystkie właściwości obiektu tuż przed zapisaniem i tam data jest prawidłowa:

WorkDay{id=296, date=2019-07-27, workingTime=8,....

W ramach testów wyłączyłem też na chwilę wymóg unikalności tej kolumny i udało mi się zaktualizować obiekt, lecz rzeczywiście apka mi nadpisuje niejawnie datę na 2019-07-26 :(
Ktoś ma jakiś pomysł, poradę, wskazówkę, cokolwiek - dlaczego tak się dzieje? Czemu data jest niewłaściwa o ten jeden dzień? I kiedy ona się próbuje nadpisać na wczorajszą?

Data w kodzie jest typu LocalDate. Korzystam ze Spring Data.

Z góry dzięki i pozdrawiam!

0

Ogarnąłem to, wszystko działa, ale dla potomnych zostawię informację o tym, co zrobiłem:

W SpringBootowych application.properties z jdbc.datasource.url wyrzuciłem

&serverTimezone=UTC

W bazie (MySQL8) wklepałem taką querkę:

SET GLOBAL time_zone = '+02:00'
0

Sprawdz:
-jak dokładnie wygląda kolumna w bazie
-jaki dokładnie obiekt zapisujesz

0
danek napisał(a):

Sprawdz:
-jak dokładnie wygląda kolumna w bazie
-jaki dokładnie obiekt zapisujesz

Kolumna w bazie ma typ date. Właściwość w obiekcie encji to typ LocalDate. Rzecz w tym, że podczas update'u elementu w bazie w ogóle nie tykam pola z datą. Nie mam żadnych triggerów itd, żeby coś się modyfikowało niejawnie. Po prostu tak jakby data przeskakiwała. Po przegrzebaniu stacka znalazłem doraźne rozwiązanie, które umieściłem powyżej.

EDIT: Dzisiaj znowu nie działa :(

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