Foros del Web » Programación para mayores de 30 ;) » Java »

@OrderBy Jpa

Estas en el tema de @OrderBy Jpa en el foro de Java en Foros del Web. Tengo en una clase @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original @OneToMany ( fetch = FetchType. EAGER , mappedBy = "encuesta" , cascade = { CascadeType. ...
  #1 (permalink)  
Antiguo 21/10/2014, 02:20
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 16 años, 1 mes
Puntos: 5
@OrderBy Jpa

Tengo en una clase

Código Java:
Ver original
  1. @OneToMany(fetch = FetchType.EAGER, mappedBy = "encuesta", cascade = { CascadeType.ALL }, orphanRemoval = true)
  2. @OrderBy("posicion")
  3. private Set<Bloque> bloques = new HashSet<Bloque>();

En en la clase Bloque

Código Java:
Ver original
  1. private Integer posicion;

Pero no ordena.
He probado:
@OrderBy("bloque.posicion"),
@OrderBy("bloques.posicion")

Con la de Hibernate y nada.

No se si falta alguna anotación más o algún configuración para que funcione.
Alguien me sabe que puede ser.
Muchas gracias.
  #2 (permalink)  
Antiguo 22/10/2014, 13:30
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: @OrderBy Jpa

Hola,

Cita:
Iniciado por jlgarcia1977 Ver Mensaje
...
private Set<Bloque> bloques = new HashSet<Bloque>();
...
Pero no ordena.
...
Posiblemente, la interfaz Set de Java no especifica ningún tipo de ordenamiento. Cada implementación diferente de JPA supongo que va a devolver algo diferente que extienda la interfaz con que se definió la variable.

Adicionalmente ¿Hay algún motivo especial por el cual inicializas la variable? La implementación JPA se va a encargar de asignarle el resultado, no es necesario inicializarla.

En resumen, posiblemente, usa la interface List y no la inicialices.

Saludos,

Etiquetas: clase, jpa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:40.