Scenario: save items in the order [SKU-Z, SKU-A, SKU-M] (deliberately not alphabetical), reload, and read the list back. reloaded order: [SKU-Z, SKU-A, SKU-M] @MappedCollection(idColumn = "order_id", keyColumn = "order_key") is what makes this deterministic. Without keyColumn, Spring Data JDBC still stores a List correctly, but the reload order is whatever the database happens to return — usually insertion order on a fresh H2 table, but that is an implementation detail, not a guarantee, and it is the kind of thing that breaks quietly on a different database or after a compaction.