Tengo un objeto Foo con una lista de barras. ¿Hay alguna manera de configurar mi clase para que getBars() devuelva una lista que se haya ordenado con Collections.sort? En otras palabras, me gustaría ejecutar Collections.sort cuando la lista se rellena por primera vez. Actualmente, llamo a sort cuando recupero la colección, que puede ser redundante y se olvida fácilmente.Ordenar la recopilación de hibernación al recuperar de la base de datos
Respuesta
¿Está utilizando asignaciones de estilo J2EE con archivos Hibernate XML, o está utilizando JavaBeans con anotación JPA?
Si está utilizando JPA, puede usar la anotación @OrderBy
para dejar que la base de datos ordene la colección por usted. También puede usar @Sort
para hacerlo en Java.
Por último, si está escribiendo HQL, por ejemplo, en un @NamedQuery
, puede usar la cláusula ORDER BY
.
¡Muchas formas de hacerlo!
Creo que si anotar la propiedad con @Sort
que se clasifican automáticamente
También tiene la opción de especificar una clase personalizada Comparator
:
@Sort(comparator=MyComparator.class, type=SortType.COMPARATOR)
Referencia:
la salida de los documentos de hibernación en colecciones ordenadas
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/collections.html#collections-sorted.
También puede poner otro método en su DAO que use hql para recuperar los elementos secundarios, que puede ordenar a través de hql.
Si el procedimiento de clasificación no se basa en una sola columna, no creo que tenga otra opción que hacer la clasificación usted mismo. Puede agregar la lógica a su modelo de dominio ...
Ordenar la lista cuando selecciona de la base de datos sería una mejor opción (déjalo ordenar) en lugar de ordenarla después de seleccionarla.
Si está utilizando la configuración de XML, se puede establecer order-by
atributo: -
<class name="Foo" table="Foo">
...
<set name="bars" inverse="true" order-by="barName">
<key column="fooId" />
<one-to-many class="Bar" />
</set>
</class>
De esta manera, cuando se invoca foo.getBars()
, obtendrá Bar
objetos ordenados por nombre de la barra, en este ejemplo.
- 1. ordenar balas de la base de datos
- 2. Persistir los campos de recopilación con hibernación
- 3. ¿Cómo recupera hibernación los datos de la vista de base de datos existente?
- 4. Ordenar columnas en las tablas de la base de datos
- 5. recopilación de datos para estadísticas: de la web a una base de datos
- 6. Criterios de Hibernación en los valores de recopilación
- 7. Tamaño de recopilación de recuento de hibernación sin inicializar
- 8. Reordenación de la recopilación C#
- 9. Recuperar esquema de base de datos
- 10. Android: problema al recuperar el mapa de bits de la base de datos
- 11. Dónde poner la lógica de dominio que necesita recuperar datos de la base de datos
- 12. Serie serializada se rompe al recuperar de la base de datos
- 13. Recuperar la conexión de Hibernate
- 14. Error al tirar de la base de datos mysql en la base de datos mysql local
- 15. Recuperar dialecto de hibernación detectado automáticamente
- 16. Cómo saber el nombre de la base de datos subyacente del proveedor de hibernación
- 17. Error al separar la base de datos SQLite - la base de datos está bloqueada
- 18. ¿Maneras elegantes de manejar vistas de la base de datos en entidades de hibernación?
- 19. ¿Transmitir o convertir al recuperar datos de una base de datos?
- 20. cómo acelerar los criterios de hibernación 'consultas ilike' con la base de datos Oracle
- 21. Recuperar la lista de tablas de la base de datos específica en el servidor C#
- 22. ¿Cómo validar el esquema de la base de datos mediante programación en hibernación con anotaciones?
- 23. Rails - Ordenar por datos de la tabla de combinación
- 24. ¿Cómo llegar al esquema de la base de datos de una base de datos oculta?
- 25. cómo recuperar datos de la base de datos SQL en Word 2010?
- 26. Cómo recuperar datos de la base de datos sqlite en android y mostrarlos en TextView
- 27. ¿Cómo puedo recuperar los datos del mes específico de la base de datos SQLite?
- 28. MSBuild: ¿automatizar la recopilación de scripts de migración db?
- 29. ¿Cómo usar la base de datos como copia de seguridad/conmutación por error en hibernación?
- 30. ¿Se aplica YAGNI al diseño de la base de datos?
Solo un encabezado la anotación '@ Sort' ha quedado en desuso, un ejemplo actualizado se vería así:' @SortComparator (MyComparator.class) '. –
@JasonSperske ¿por qué no agregas una respuesta con eso? –