Una lista, si no hay una columna de índice especificada, será manejada como una bolsa por Hibernate (sin pedido específico).
Una diferencia notable en el manejo de Hibernate es que no puede obtener dos listas diferentes en una sola consulta. Por ejemplo, si tiene una entidad Person
que tiene una lista de contactos y una lista de direcciones, no podrá usar una sola consulta para cargar personas con todos sus contactos y todas sus direcciones. La solución en este caso es realizar dos consultas (lo que evita el producto cartesiano), o usar un Set
en lugar de un List
para al menos una de las colecciones.
A menudo es difícil usar Sets with Hibernate cuando tiene que definir equals
y hashCode
en las entidades y no tiene una clave funcional inmutable en la entidad.
Y para el detalle de lo que sucede con una lista, vea http://stackoverflow.com/q/1995080/2495717. – ben3000