6.2.4. Indexed Collections


All collection mappings, except those with set and bag semantics, need an index column in the collection table. An index column is a column that maps to an array index, or List index, or Map key. The index of a Map may be of any basic type, mapped with <map-key>. It can be an entity reference mapped with <map-key-many-to-many>, or it can be a composite type mapped with <composite-map-key>. The index of an array or list is always of type integer and is mapped using the <list-index> element. The mapped column contains sequential integers that are numbered from zero by default.
<list-index 
        column="column_name"
        base="0|1|..."/>
Copy to Clipboard Toggle word wrap
column_name (required): the name of the column holding the collection index values.
base (optional - defaults to 0): the value of the index column that corresponds to the first element of the list or array.
<map-key 
        column="column_name"
        formula="any SQL expression"
        type="type_name"
        node="@attribute-name"
        length="N"/>
Copy to Clipboard Toggle word wrap
column (optional): the name of the column holding the collection index values.
formula (optional): a SQL formula used to evaluate the key of the map.
type (required): the type of the map keys.
<map-key-many-to-many
        column="column_name"
        formula="any SQL expression"
        class="ClassName"
/>
Copy to Clipboard Toggle word wrap
column (optional): the name of the foreign key column for the collection index values.
formula (optional): a SQ formula used to evaluate the foreign key of the map key.
class (required): the entity class used as the map key.
If your table does not have an index column, and you still wish to use List as the property type, you can map the property as a Hibernate <bag>. A bag does not retain its order when it is persisted to the database, but it can be optionally sorted or ordered when it is retrieved from the database.
Back to top
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2025 Red Hat