Wpis z mikrobloga

@JacobTheLiar: może inna tabela/schemat/baza na którą się łączysz z konsoli a inna z kodu? Może masz joina i ci powiela dane? Może błąd findBySourceGroupId? Może błąd w tej funkcji mapToOfferReduction?

Cholera wie tak bez kodu nie wywróżę.
  • Odpowiedz
@JacobTheLiar: Ten widok może się zmieniać z czasem? Cache hibernate może go zapamiętał? Chociaż wtedy by się data nie zmieniła.

To jest proste mapowanie czy masz jakieś hibernatowe one-to-one/one-to-many itp?

No i jeszcze jest kwestia że show_sql chyba parmetrów nie pokazuje?Masz pewność że z takimi samymi parametrami odpalasz? Może typy są inne i hibernate je konwertuje inaczej niż ty z palca?
  • Odpowiedz
ta funkcja findBySourceGroupId to automatycznie generowana czy ma jakiś kod? Jeszcze tam bym popatrzył, a jak nie to w ten widok, może działa raz tak raz inaczej bo np. zależy od sysdate.
  • Odpowiedz
@tell_me_more: tak, funkcja findBySourceGroupId jest automatycznie generowana, jakby była źle to by złe zapytanie szło a jest prawidłowe. Idę się przejść, może chwila luzu naprawi problem. Wywaliłem wszystko co by mogło przeszkadzać, mappery i inne i bez poprawy. Zapytanie idzie prawidłowe ... ahhh
  • Odpowiedz
@JacobTheLiar: funkcja może też wynik dobrego zapytania źle pakować albo zwracać :)

W takiej sytuacji trzeba po prostu wyrzucić wszystkie założenia i je po kolei sprawdzać. Któreś będzie nieprawdziwe, bo magii nie ma :)
  • Odpowiedz
@JacobTheLiar: a na pewno kończysz transakcje ?
jak masz inne wyniki na konsoli niż w kodzie java to może to być spowodowane, że ustawiłeś sobie w kodzie możliwość zwrotu "dirty data"
czyli w java masz zwracane również dane z hibernate cache, które jeszcze nie mają statusu zakończonej transakcji.

ale to tylko przypuszczenia...
  • Odpowiedz
@nairamk: @tell_me_more: @plastik: temat rozwiązany, dziś wpadłem na to co źle zrobiłem i na przyszłość musze to zapamiętać.

Stworzyłem sobie view, który dawał wyniki jak na screenie, który podłączyłem w pierwszym poście.
Zapytanie generowało prawidłowe wyniki, problemem okazało się postawienie adnotacji @Id na polu encji, które traktowałem jako fałszywe id do celów łatwego zbudowania @Repository na JpaRepository. Po dzisiejszym głębszym przemyśleniu Hibernate potraktował pole Id poważnie i zignorował
  • Odpowiedz