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

JPA filtrar relación OneToMany

Estas en el tema de JPA filtrar relación OneToMany en el foro de Java en Foros del Web. Como puedo filtrar los resultados de una relación OneToMany, por ejemplo tengo las entidades País y Estados: Código: @Entity @Table(name = "paises") public class Paises ...
  #1 (permalink)  
Antiguo 19/08/2011, 12:01
 
Fecha de Ingreso: agosto-2011
Mensajes: 1
Antigüedad: 12 años, 8 meses
Puntos: 0
JPA filtrar relación OneToMany

Como puedo filtrar los resultados de una relación OneToMany, por ejemplo tengo las entidades País y Estados:

Código:
@Entity
@Table(name = "paises")
public class Paises implements Serializable {
    …
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "pais", fetch=FetchType.LAZY)
    private Collection<Estado> estados;

    …
}
Código:
@Entity
@Table(name = "estados")
public class Estados implements Serializable {
    
    @Column(name = " visible")
    Boolean visible ;

    @ManyToOne
    private Pais pais;
    
    …
}
Al crear una consulta como esta:

Código:
SELECT p FROM Pais p
Obtengo los países con todos sus es dentro de la colección estados; Como puedo filtrar el resultado de esta colección, de acuerdo con el valor del campo visible, para obtener todos los países, pero que dentro de la colección estados solo estén los estados con el campo “visible” con valor true; puedo tomar el resultado y fíltralos en un ciclo, pero lo que me interesa es obtener el resultado filtrado directamente por medio de una consulta. Ya intente esta consulta:

Código:
SELECT p From Pais p, in(p.estados) e where e.visible = 1
Pero obtengo un registro de tipo Pais por casa estaso.
  #2 (permalink)  
Antiguo 19/08/2011, 12:35
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: JPA filtrar relación OneToMany

No soy muy conocedor de JPA (solo lo he utilizado junto con Hibernate), pero por lo que he visto, no es posible aparentemente:
http://stackoverflow.com/questions/3...ibernate-query
Cita:
Not with standard JPA. But Hibernate allows to apply arbitrary filters to a collection load during a given session. From the Hibernate Annotations Reference Guide:
Si alguien tiene otra respuesta, iluminenme a mi tambien :)

Etiquetas: filtrar, 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 06:43.