У меня есть модель, которая имеет несколько свойств.Свойства могут быть примитивными (String) или сложными (Object).Пользователь может сделать запрос для каждого примитивного свойства.Я хотел бы знать, есть ли простой способ динамически построить запрос.Я использую Java и Hibernate.
Модель
public class Model {
String prop1;
Point prop2;
List<Shape> prop3;
}
Point
и Shape
являются объектами, которые могут содержать примитивы или объекты.Примером запроса могут быть все случаи, когда prop1 = "A" и координаты x = 3 и y = 8, а одна из фигур представляет собой круг.
prop1 = "A" и prop2.x= 3 и prop2.y и prop3.get (i) .type = "Circle";нам пришлось бы повторять все экземпляры prop3.
Моя первая идея была недостижимой и неэффективной.Он состоит в выполнении запросов ко всем примитивным свойствам, а затем объединении результатов.
- Получить все случаи, когда prop1 = "A"
- Получить все случаи, где prop2.x = 3prop3 = y;
- Получить все случаи, когда один из Shape.type = "Circle";
- Получить пересечение всех 3 наборов
Есть лиСуществующая библиотека или алгоритм, который может решить эту проблему лучше (умнее)?
Спасибо