Från Javadocs för OrderColumn:"Ordningskolumnen måste vara av integraltyp. Persistensleverantören upprätthåller en sammanhängande (icke-gles) ordning av värdena i ordningskolumnen vid uppdatering av associationen eller elementsamlingen. Ordningskolumnvärdet för det första elementet är 0."
Så förväntningen är att värdena för OrderColumn börjar från 0 och är kontinuerliga värden. Så när värdena inte är kontinuerliga lägger Hibernate till null-element till din Java-lista.
Jag tror att det här beteendet hos OrderColumn liknar listindexbeteendet i viloläge xml-mappning.