Przy tworzeniu nowego seansu muszę sprawdzić czy poprzedni zakończył się już jeśli ten nowy ma być w tym samym dniu, w podobnym czasie i w tej samej sali co poprzedni. Dodatkowo mam takie wymaganie, że musi być przerwa godzinna między seansami w kinie jeśli odbywają się w tej samej sali. Wiadomo, trzeba taką salę po każdym seansie posprzątać. Np. poprzedni seans rozpoczął się 2023-01-02 o 16:30, w sali nr 3 i trwał
Jak w springu przetestować metodę saveSomething(ids...) w jakimś {User/Group/Whatever}Service.java, która wykonuje jakąś logikę z warunkiem if-else i potem za pomocą obiektu repository zapisuje obiekt w bazie?

Nie zwracam w tej metodzie nic bo ten obiekt zapisuje w jakiejś większej grupie obiektów, więc zwracanie listy zaktualizowanych obiektów nie ma sensu.

Jedyne co mi przychodzi do głowy to przetestować czy obiekt repository wywołał metodę save w zależności od argumentów metody. Czyli verify(sometService, times(1)).someMethod();

Mówię
Mireczki projektując rest api w springu, przy mappingu i przy zwracaniu ResponseEntity w metodzie kontrolera oprócz consumes i produces co jeszcze powinno się znaleźć?
1. Location do utworzonego zasobu?
2. UserAgent?
3. Domyślna wartość Pagination? - czy muszę wtedy tworzyć osobne klasy opakowujące metody pobierające produkty z bazy? Czy wystarczy, że tę wartość mogę przekazać jako parametr do metod pobierających produkty z bazy?

Pierwszy raz się tym bawię i chciałbym wiedzieć jaka
@famir96: W zależności od tego, co projektujesz, mogą, aczkolwiek nie muszą być dodatkowe wymagania. Nie ma wymagań, to tylko gdybanie. Tak, jakbyś się pytał, jak wybudować biuro, nie podając żadnych informacji o działce, którą dysponujesz czy budżecie.

Ad.1 nie, chyba że robisz coś, co coś zapisuje, tworzy, buduje, generuje. Równie dobrze, możesz przekazać URL, czy ten zasób w odpowiedzi. Chyba że nie możesz, bo w wymaganiach jest, by przekazać nagłówkiem ;)
Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyToMany np. User i Discount to dobrym pomysłem będzie dorobienie pola w klasie User: Map?

Potrzebuję wiedzieć czy jest aktywna zniżka czy nie. A jak zmienię pole isActivated w bazie na dowolnym obiekcie Discount to będzie to zmiana widoczna dla wszystkich użytkowników, którzy korzystają z tej zniżki, a ja chcę tylko dla jednego usera. ( ͡° ʖ̯ ͡°)
takiMirek29 - Jak mam dwie klasy Entity powiązane ze sobą dwukierunkową relacją ManyT...

źródło: comment_1672406366yzXDsx5yplhxx5HKFEldfe.jpg

Pobierz
Mam problem z cykliczną zależnością referencji w hibernate tzn. przykładowo mamy dwie klasy autor (posiada pole set), z adnotacja manyToMany i przy pobieraniu jakiegos autora wywala blad bo przez metode toString mamy cykliczna zaleznosc. Dalem jsonignore na te pola, ale co mi z tego jak ja chce zwrocic pelen obiekt razem z tymi polami. Jak to zrobic?

amatorski picrel
#java #hibernate #spring #naukaprogramowania
nick230 - Mam problem z cykliczną zależnością referencji w hibernate tzn. przykładowo...

źródło: comment_16723132476Py2lH6WOTAGD1yafCfdLH.jpg

Pobierz
@nick230: W toString powinny być tylko i wyłącznie pola należące do tej encji, bez dociągania zależności z innych. Pchasz się w N+1.... Nie panujesz nad wykonywanym zapytaniem. Włącz wypisywanie zapytań hibernate w konfiguracji springa.
Mirki z #programista15k , wiem że "rychło w czas", ale mam budżet szkoleniowy do wydania do końca roku, a czasu na szkolenia brakuje ¯\_(ツ)_/¯ ... Podrzucicie mi, proszę, jakieś sensowne kursy, np. na #udemy (ale niekoniecznie), z tematów w stylu:
- zaawansowane rzeczy w #java
- zaawansowane rzeczy w #spring
- coś fajnego o JPA / #hibernate / Spring Data itd
- cokolwiek o około-programistycznych rzeczach, typu #docker , #kubernetes , #
Jest sens używać WebClient, jeśli aplikacja stoi na servlecie i wszystkie inne operacje (np. na bazie) są blokujące? Kiedyś może i tak trzeba będzie przepisać wszystko na Reactive. Na początku klient chciał gRPC, ale ze względu na brak wsparcia zmienił na REST.

Generalnie to jeśli apka stoi na servlecie, to operacje są blokujące i raczej nie ma znaczenia, czy obsługą zapytań do zewnętrznych usług zajmie się WebClient, czy RestTemplate, czy nawet natywny
@SendMeAnAngel: sens używania jest taki, że Spring team sam oficjalnie mówi, że RestTemplate jest w maintenance mode i nie będą wspiera tego dalej (ostatecznie, w którejś wersji będzie już jako deprecated) i w tym momencie zalecanym jest używanie WebClienta zarówno w aplikacjach reaktywnych i niereaktywnych. Różnica jest tylko taka, że w przypadku aplikacji niereaktywnych webclient zachowa się identycznie jak resttemplate w przypadku .block().
Przypominam, że dziś o godzinie 19:00 spotykamy się na szkoleniu Live z Kubernetesem! W trakcie tego spotkania będziemy tworzyć deployment obiektów oraz wdrażać aplikację Spring Boot połączoną z bazą danych MySQL do klastra Kubernetesowego.

Niestety, dzisiejszy LiveStream będzie dość krótki, ponieważ OpenAI zrealizuje dużo roboty za nas - pokażę Ci jak to osiągnąć Dlatego tym bardziej zachęcam, bo nauczymy się dużo nowych rzeczy, a po szkoleniu każdy będzie w stanie wdrożyć swoje
SoftBull - Przypominam, że dziś o godzinie 19:00 spotykamy się na szkoleniu Live z Ku...
@SoftBull: odpaliłem na chwilę to Twoje "szkolenie", nigdy wcześniej Cię nie oglądałem i nie wiem jak wygląda reszta Twojej działalności, ale to "szkolenie" z Kubernetesa w Twoim wykonaniu było moim zdaniem tragiczne.

Dlaczego szkolisz ludzi z czegoś, czego sam do końca nie rozumiesz?
Może to też kwestia stresu, bo widać że Cię stres zjadł jak CLI zaczęło Ci sypać błędami, ale w ciągu mniej niż 30
minut spokojnie można było wyłapać,
@SoftBull: byłem praktycznie do końca. Nie uszczegółowiłeś żadnego z wymienionych przeze mnie punktów, a jeżeli już jakiś z nich się pojawił to albo temat był poruszony bardzo pobieżnie, albo był przedstawiony w błędny sposób.
Pod koniec pojawiły się także smaczki typu "jeden Deployment z trzema ReplicaSet'ami", czy "Mam swoją domenę i nie ma portu, a strona działa". No działa, ale dlatego że port jest domyślny i jest podawany w sposób niejawny,
#spring #programowanie

Czy jest ktoś w stanie podpowiedzieć jak powinien wyglądać wyglądać pattern dopuszczający wszystkie originy zawierające Stringa 'swagger'? Przykładowy origin: "https://my-swagger-dev.com"

@Bean
public CorsFilter corsFilter() {
CorsConfiguration corsConfiguration = new CorsConfiguration().applyPermitDefaultValues();
stream(HttpMethod.values()).forEach(corsConfiguration::addAllowedMethod);
corsConfiguration.addAllowedOriginPattern(" ??? ");

UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}
Natrafiłem na pewien problem podczas testowania i choć go rozwiązałem to dalej nurtuje mnie ciekawość w jaki sposób brać na warsztat podobne sytuacje. Mianowicie, pisząc unit testy w #spring chciałem przetestować serwis, w którym metoda tworzy w sobie obiekt, coś ala klasę konfiguracyjną/wrapper, ale go nigdzie nie zwraca na zewnątrz.

classA
foo(){
Object x = new Object()
x.setSomething(...)

Jest jakiś pattern, żeby w unit testach sprawdzić poprawność wywołania takiej metody setSomething() z
@MQs: akurat sprawdzałem czy plik konfiguracyjny odpowiednio poustawiał wartości w obiekcie mimemessage niezbędnym do wysyłania maili. Tak zachodzę w głowę jak inaczej miałbym to kontrolować poza jakimiś testami integracyjnymi. Przy ewentualnej podmianie takiego pliku co najwyżej wywali mi wyjątek lub testy, ale nie będzie sypać błędami.

W tym przypadku to widocznie moja nieuwaga, bo nie powinienem mockować takiego obiektu, a raczej sprawdzać czy taki wrapper go odpowiednio skonfigurował, co koniec końców
✨️Szkolenie Live: Kubernetes Dla Programistów!✨️

Kubernetes pozwala zautomatyzować proces wdrażania, skalowania i zarządzania skonteneryzowanymi aplikacjami. Dziś pokażę Ci jak zacząć z nim pracować, dlatego w trakcie szkolenia Live:
✅ Zaznajomię Cię z architekturą Kubernetesa - czym jest, jak działa, przybliżę kluczowe komponenty, oraz opowiem, jaka jest zasadnicza różnica pomiędzy Kubernetesem a Dockerem/Docker Compose.
✅ Pokażę Ci jak zbudować lokalne środowisko (narzędzia i oprogramowanie) do pracy z Kubernetesem.
✅ Wykonamy pierwsze wdrożenie aplikację
SoftBull - ✨️Szkolenie Live: Kubernetes Dla Programistów!✨️

Kubernetes pozwala zau...
@SoftBull: te twoje darmowe szkolenia to o kant dupy mozna rozbić, pamietam jak robiles szkolenie o NFT i #!$%@? pokazales jakis generator obrazków i dodawales ręcznie nft do OS a ja myślałem że będzie o blockchainie i pisaniu własnego kontraktu.

Tu pewnie bedzie to samo zamiast jak dziala k8s i jak go postawić to będzie jak uruchomić appkę na gotowych yamlach

Mam nadzieje ze chociaż te platne kursy to coś więcej
Cześć,

✨️ Z radością mogę powiedzieć, że Polska Społeczność doczekała się pierwszej polskiej publikacji na temat Spring Boota.
Osobiście zadbałem o to, aby Spring Boot: LiveBook wyróżniał się na tle innych publikacji innowacyjnością. A to co oferuje znacznie bardziej wykracza poza ramy tradycyjnych książek.

✅ Jako punkt pierwszy postawiłem na esencjonalność – LiveBook zawiera najważniejsze rzeczy, które przydadzą się każdemu, kto pracuje ze Spring Bootem. Dążyłem do wyeliminowania niepraktycznych lub rzadko spotykanych
SoftBull - Cześć, 

✨️ Z radością mogę powiedzieć, że Polska Społeczność doczekała ...
@Icouldbeyourmom: Nie opracowywałem wersji elektronicznej. W pierwszej kolejności skupiłem się nad wersją papierową. Jak będzie zainteresowanie wersją elektroniczną i znajdę więcej czasu, to postaram się też wydać ebooka ( ͡~ ͜ʖ ͡°)
Mireczki mam problem z obsługą w spring boocie request z content-type jako application/x-www-form-urlencoded.
Posiłkując się tutorialem (punkt 4.1):
https://www.baeldung.com/spring-url-encoded-form-data

Przygotowałem identyczny endpoint (tak samo jest to post, ma analogicznie uzupełnione consumes, taki sam parametr metody czyli @RequestParam MultiValueMap paramMap).

Request puszczam postmanem (w body wybrałem application/x-www-form-urlencoded i wrzuciłem przykładowy klucz "id" z jakąś tam wartością").

Problem w tym, że w kontrolerze ciągle ta mapa jest pusta, nie zawiera nic.
nagłówek content-type (application/x-www-form-urlencoded)