Dai javadoc di OrderColumn:"La colonna order deve essere di tipo integrale. Il provider di persistenza mantiene un ordinamento contiguo (non sparso) dei valori della colonna dell'ordine durante l'aggiornamento dell'associazione o della raccolta di elementi. Il valore della colonna dell'ordine per il primo elemento è 0."
Quindi, l'aspettativa è che i valori di OrderColumn inizino da 0 e siano valori continui. Quindi, quando i valori non sono continui, Hibernate aggiunge elementi null all'elenco Java.
Penso che questo comportamento di OrderColumn sia simile al comportamento dell'indice di lista nella mappatura xml di ibernazione.