tenemos las siguientes clases JPA:¿Cómo puedo ordenar dinámicamente una propiedad de colección en JPA?
@Entity
class Supplier {
// ... id property etc.
@OneToMany
@OrderBy("someProperty")
private List<Region> regions;
}
Esto funciona bien en el caso normal. Sin embargo, tenemos algunos datos multilingües donde los valores se almacenan en propiedades como nameEn
, nameDe
, nameZh
. La propiedad exacta para usar depende del usuario que haya iniciado sesión. Por ejemplo, un usuario de habla alemana debería ver las regiones como si hubiera sido anotado con @OrderBy("nameDe")
.
¿Cómo puedo lograrlo?
Soy consciente de que podría ordenar la colección en mi código después de que se haya cargado, pero esto hace que la paginación de los resultados sea bastante difícil.
no puede incrustar en la anotación de que desde las anotaciones se procesan una vez cuando se crea el EntityManagerFactory para su unidad de persistencia. Lo que intenta hacer es similar a crear una consulta dinámica. –