Aktywne Wpisy
![Waleczny_Kalafior](https://wykop.pl/cdn/c3397992/Waleczny_Kalafior_2RzebiHoRw,q60.jpg)
Waleczny_Kalafior +503
Jak możesz nie pracować po godzinach pracy, nie masz w ogóle szacunku do pracy (xDDD), jeb.ne pokolenie myślące tylko o sobie, a nie o korzyściach dla firmy xDDD
Jednak ##!$%@? w dzisiejszych czasach dalej mocny.
#januszebiznesu #januszex
Jednak ##!$%@? w dzisiejszych czasach dalej mocny.
#januszebiznesu #januszex
![Waleczny_Kalafior - Jak możesz nie pracować po godzinach pracy, nie masz w ogóle szac...](https://wykop.pl/cdn/c3201142/1d0dcaa296ac5a1d76c4d4ed5e271d18730b2ba51d9de3c923f9a2accbdfabf9,w150.jpg)
źródło: 1000002305
Pobierz![mirko_anonim](https://wykop.pl/cdn/c0834752/321ea7dc2985c2bfbf21a6b5598af7c3220625c6954fbbc0a440b525befed626,q60.png)
mirko_anonim +11
✨️ Obserwuj #mirkoanonim
Ja już nie wiem. Tyle facetów ma fajne zgrabne, albo normalnej postury dziewczyny, ni to chude, ni to grube, które modnie się ubierają. Np. Buty. Nike air force, conversy czy vansy to podstwa, a Ty zawsze trafiasz na takie, które chodzą w jakiś podróbach za 50zl z ccc czy z croppa, albo innym syfie. Dobre ubrania z lepszej sieciówki? Po co, lepiej plastikowe gówno z teemu czy sheina za
Ja już nie wiem. Tyle facetów ma fajne zgrabne, albo normalnej postury dziewczyny, ni to chude, ni to grube, które modnie się ubierają. Np. Buty. Nike air force, conversy czy vansy to podstwa, a Ty zawsze trafiasz na takie, które chodzą w jakiś podróbach za 50zl z ccc czy z croppa, albo innym syfie. Dobre ubrania z lepszej sieciówki? Po co, lepiej plastikowe gówno z teemu czy sheina za
Teraz jest samo @Transactional.
Bazy danych do testów MariaDB z domyślnym silnikiem, PostgresSQL.
Jeśli wyśle z unit testu drugie zapytanie w czasie wykonywania pierwszego to w bazie w tabeli są już 2 wiersze.
W PostgreSQL domyślnym poziomem izolacji jest Read committed.
Tam gdzie nie trzeba nic zwracać to można dać do kolejki i tyle.
Są jednak przypadki, że endpoint musi zwracać odpowiedź z pewnymi danymi od razu.
Co będzie dostatecznym rozwiązaniem?
1. Przetestować wszystkie endpointy i te gdzie występuje ten problem zrobić lock na wierszach (SELECT FOR UPDATE).
2. Przechowywać stan w pamięci aplikacji i co pewnien czas synchronizować z bazą.
3. Trigger po insercie z RAISE EXCEPTION.
4. Napisać @Transactional Serializable nad endpointami
#spring #java #springboot #bazydanych
Czyli szukasz czegoś na bazie, jak tego nie znajdziesz to tworzysz to i zwracasz użytkownikowi, tak?
Twój problem polega na tym, że jeżeli w tym samym czasie, dwie osoby wywołają szukanie, to duplikuje Ci rekordy w bazie danych?
Jeśli dobrze rozumiem, to możesz chyba ustawić unikalność na bazie. Wtedy drugi insert się wywali i nie będziesz miał duplikatów.
Najłatwiej mieć unikatową kolumnę jak @kenshin985 napisał. Od biedy w niektórych zastosowaniach nada się też kolumna z hashem kilku pól modelu.
Jeśli masz jakąś zależność od innych rekordów, to IMO lock będzie drugą najlepszą opcją. Typu relacja AUTO do wielu CZESCI. Zalockowanie auta spowolni tylko równoległe operacje na tym aucie, a nie niepotrzebnie wszystkie na tym endpoincie.
Opcja 2 to już prawie inwalidacja cache i tylko czekać na bugi i