Wpis z mikrobloga

#java #spring #refactoring

Mirki, mam repository rozszerzające CrudRepository.
Zrobiłem 2 custom metody, każda z nich wyciąga mi część danych, którą później merguje i przekazuje do serwisu.
Żadna z nich jako pojedyncza metoda nie jest i nie będzie mi potrzebna.

Chciałbym je jakoś ukryć, żeby nie były dostępne w serwisach , do których wstrzykuje to repo (zrobię sobie default metodę getMergedData która mi będzie zwracać to co chcę i z niej będę korzystać w serwisach).

Pytanie jak to zrobić w javie 8.. Myślałem nad implementacją repo jako klasa abstrakcyjna rozszerzająca CrudRepository - mająca dwie prywatne metody i jedną publiczną, która mi będzie zwracać to co chce. Jest to możliwe? Lub jakieś inne wyjście.. Macie jakieś pomysły?
  • 11
  • Odpowiedz
@teez: w interfejsie nie mogę mieć prywatnych metod w javie 8. Chcę tak robić, ponieważ te metody mi są nie potrzebne. Mogę o tym zapomnieć i tego po prostu nie używać, ale chciałem wiedzieć czy takie coś jest możliwe.
Mój przypadek jest może trochę "przesadzony", ale wydaje mi się że powinna być opcja żeby jakoś ukryć metody. Np. ktoś może nie chcieć, żeby metoda save() była dostępna w serwisach -
  • Odpowiedz