Hibernate: @OrderBy vs @OrderColumn, aby zachować kolejność kolekcji
Jaki jest preferowany sposób utrzymania kolejności kolekcji podczas jej trwania, a także podczas pobierania z bazy danych?
Wiem, że @OrderBy jest bardziej sortowaniem w pamięci, które może działać przy pobieraniu tylko wtedy, gdy porządkujesz wiersze w kolejności wybranej przez ciebie kolumny.
Powiedzmy, że wybrałem użycie kolumny popartej sekwencją bazy danych, zapadnie w stan hibernacji, upewnij się, że elementy w kolekcji są zachowane w tej samej kolejności, jak w kolekcji (powiedz List).
Jakiekolwiek myśli?
Więcej szczegółów:Powiedzmy, że mam klasę A, która ma relację jeden do wielu z klasą B. B ma pole klucza podstawowego, „Id”, które jest poparte sekwencją w DB.
Class A {
List<B> bList;
}
Zawsze chciałem zachować kolejność elementów B w A jak poniżej:
bList = { b1, b2, b3 }
Jednym ze sposobów osiągnięcia tego jest użycie @OrderBy („Id ASC”). Będzie to działać tylko wtedy, gdy lista B zostanie utrzymana w kolejności jak poniżej:
----------------
Id ----bValue
----------------
1------ b1
2------ b2
3-------b3
------------------
Po odzyskaniu, ponieważ jest zamawiane przez Id, zamówienie jest zachowywane.
Niech kolekcja B przetrwa w następujący sposób:
----------------
Id ----bValue
----------------
1------ b2
2------ b1
3-------b3
------------------
Po pobraniu kolejność listy B przechodzi do rzutu (ponieważ jest to kolejność według kolumny Id). Więc moje pytanie, czy kolekcja B zawsze utrzymuje się w tej samej kolejności, w jakiej pojawia się na liście, czy nie.