J'ai un modèle qui a plusieurs propriétés. Les propriétés peuvent être primitives (String) ou complexes (Object). L'utilisateur peut faire une requête sur chaque propriété primitive. Je voudrais savoir s'il existe un moyen facile de construire dynamiquement la requête. J'utilise Java et Hibernate.Requête dynamique sur plusieurs propriétés avec Hibernate
Le modèle
public class Model {
String prop1;
Point prop2;
List<Shape> prop3;
}
Point
et sont Shape
objet qui peut contenir des primitives ou des objets. Un exemple de requête serait toutes les instances où prop1 = "A" et les coordonnées sont x = 3 et y = 8 et l'une des formes est un cercle. Prop1 = "A" et prop2.x = 3 et prop2.y et prop3.get (i) .type = "Cercle"; nous devrions itérer sur toutes les instances de prop3.
Ma première idée était insoutenable et inefficace. Il consiste à faire des requêtes sur toutes les propriétés primitives, puis à fusionner les résultats.
- Obtenez tous les cas où prop1 = "A"
- Obtenez tous les cas où prop2.x = 3 et prop3 = y;
- Obtient toutes les instances où l'un des Shape.type = "Cercle";
- Obtenez l'intersection des 3 ensembles
Y at-il bibliothèque existante ou d'un algorithme qui peut résoudre ce problème d'une manière meilleure (plus intelligent)?
Merci
Voulez-vous interroger sur le "type Java" d'une forme ou avez-vous un champ pour le type? –
Mon exemple était très simple par rapport à mon vrai modèle, mais les critères de recherche sont ce que je cherchais. – Sydney