Sortowanie wg danego pola obiektu

0

Jak się pozbyć tutaj dodatkowej zmiennej?

	public List<MyUser> getAllUsersSorted() {
		List<MyUser> users = new ArrayList<>();
		usersRepository.findAll().forEach(users::add);
		List<MyUser> sortedUsers = new ArrayList<>();
		users.stream().sorted((u1,u2)-> u1.getUserName().compareTo(u2.getUserName())).forEach(u->sortedUsers.add(u));
		return users;
	}

Chcę posortować listę users, ze względu na nazwę. Czy da się to jakoś prościej posortować i czy da się pozbyć tej dodatkowej listy, a posortować tą pierwszą? Pewnie się da, nawet kiedyś to zrobiłem tylko dawno tego nie używałem i zapomniałem.

0

Teoretycznie najlepiej byłoby sortowanie przerzucić do repozytorium - baza danych obrobi rekordy znacznie szybciej niż komputer użytkownika/aplikacji.

0

Patrz wpisałem w google Java sort list i klase którą potrzebuje.
A poza tym nie twórz nowej listy i dodawaj za pomocą add tylko wykorzystaj Collectors :)

0

Dopiero się uczę springa, niedawno skończyłem tutorial od Javabrains i na razie zapisywanie do bazy danych (tam derby była, będę musiał się pobawić z łączeniem z inną) i odczytywanie umiem na takiej zasadzie że tworzę pusty interfejs który dziedziczy po CrudRepository. Tutaj miałbym to zaimplementowac żeby to było szybciej (w interfejsie) czy gdzieś indziej? Dopiero się uczę.

Scibi92, pamiętam że się to jakoś robiło tylko nie pamietalem jak. Próbowałem użyć metody collect, ale nie wiem jak za bardzo się tego używa. Jakby to wyglądało w praktyce to o czym mówisz?

Edit: wiem, że da się wysłać do DB proste zapytanie z sort by, ale nie o to mi na razie chodzi

0

jeśli chcesz to zrobić po stronie aplikacji, a nie bazy to możesz coś takiego:

List<MyUser> users = new ArrayList<>();
users =  usersRepository.findAll();
users.sort(Comparator.comparing(MyUser::getUserName));
0

Prawdopodobnie o to mi chodziło. Jak przyjdę do domu to to sprawdzę. Na początku chciałem to zrobić z użyciem stream i potem sorted, Ale nie wiedziałem potem jak to skończyć xd

0

Planuję się nauczyć, najpierw chciałem ogarnąć podstawy z Springa, potem, jak już przerobilem z javabrains o Spring Quick Boot Start. Teraz tak bardziej utrwalić to sobie chciałem dodając nowe niepotrzebne funkcje. A polecisz jakiś tutorial z JPA? Czy oczywistym wyborem będzie np Hibernate? Czy jdbc?

Edit: @scibi92

0

Jak korzystasz ze Spring Data JPA to logiczne że najpierw musisz nauczyć się JPA. Jak się uczyłem to znalazłem jakieś książki w internecie o Hibernate, a JPA ostatnio uczyłem się z http://helion.pl/ksiazki/java-persistence-programowanie-aplikacji-bazodanowych-w-hibernate-wydanie-ii-christian-bauer-gavin-king-gary-gregory,javpe2.htm
JDBC to JDBC, a Hibernate to jedna z implementacji JPA (tzw. Provider).

0

Mam tą książkę. Jednak pierwszy problem miałem już z jednostką utrwalania z (bodajże) drugiego rozdziału (ta pierwsza). Więc postanowiłem, że nie będę marnowal czasu i siadlem do springa. Teraz jeszcze raz do niej usiade. :)

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