Ho una classe Persona che ha un set di libri. Nel caso specifico non è significativo avere una collezione ordinata o ordinata.Hibernate: ordina un set
Dire ora che ho una pagina di ricerca con una tabella che mostra l'unione di Persona e Libro. Voglio essere in grado di ordinare i risultati in base ai campi di Persona e Libro, quindi ottenere un elenco da Hibernate e scorrere su di esso.
Poiché la raccolta è un set, l'ordinamento dei libri è scomparso (PersistentSet of Hibernate racchiude un hash di libri, che non è ordinato).
Quindi, con questo approccio non posso avere risultati ordinati anche per i campi del libro.
Se cambio la raccolta da Imposta a Elenco, il mio modello è semanticamente errato. Non vi è alcun significato per mantenere l'ordine nel modello.
Esiste un approccio per mantenere l'ordine dei libri? Forse c'è un modo per PersistentSet per racchiudere un LinkedHashSet (che è ordinato), dove l'ordine è definito dai miei criteri di ricerca?
Cheers!
Grazie per la risposta (+1). Sì, l'ho visto. Ma nell'esempio hanno stabilito che l'ordine si trova su un determinato campo. Voglio che i campi vengano impostati tramite l'API Criteri, a seconda di ciò che l'utente ha fatto clic sull'interfaccia utente. –
È anche possibile specificare un ordine per i risultati in una query Criteria, separata da qualsiasi cosa specificata nella mappatura. http://docs.jboss.org/hibernate/stable/core/reference/en/html/querycriteria.html#querycriteria-ordering –
Sì, è possibile, ma purtroppo il order-by nella mappatura (o @OrderBy) ha la precedenza , che rende inutile l'ordine impostato dai Criteri. O almeno, viene dopo l'ordinamento dell'ordine della mappa. –