Я не совсем уверен, что лучший подход для разработки того, что я бы назвал «параметрическим» механизмом поиска или правил. У меня есть объект Java, который имеет несколько полей. Я выполню java-объект для нескольких запросов, чтобы проверить, соответствует ли он определенным критериям.
Примером, о котором я могу подумать, является функция поиска ошибок в bugzilla. В пользовательском интерфейсе вы выбираете такие вещи, как статус, разрешение, серьезность. Затем нажмите «Go», и он возвращает ошибки, соответствующие этому критерию. Я полагаю, что это реализовано путем создания запроса SQL из полей, выбранных в пользовательском интерфейсе.
В моем случае объект, который содержит значения, отсутствует в базе данных , так что это не очевидный ответ. Мой объект также довольно сложен и потребует добавления нескольких таблиц ... и создание таблиц базы данных кажется довольно хакерским, чтобы затем использовать механизм запросов в базе данных. Кроме того, в моем приложении пользователь в основном создает эти сопоставления, и они должны быть сохранены в базе данных. Таким образом, в этом случае вы бы в конечном итоге сохранили необработанную строку SQL-запроса в базе данных, что звучало как серьезная защита, нет, нет для меня. (Но я не специалист по базам данных, так что, возможно, именно так все и делается).
На данный момент, я действительно ищу какое-то руководство. Я надеюсь, что есть какой-то шаблон дизайна для того, чего я пытаюсь достичь. Я пробовал гуглить разные вещи, такие как «шаблон проектирования параметрического поиска» и «механизмы правил», и не нашел ничего подходящего. LINQ будет заниматься этим? Я посмотрел на это кратко, и казалось, что это будет слишком много.
Заранее спасибо.
Редактировать 1:
Вот некоторые дополнительные детали, которые, я надеюсь, прояснят комментарии до сих пор.
Я хочу позволить пользователю создавать некоторые правила, которые будут похожи, если объект foo.getTempera () равен> = 30 и foo.getTypeOfMsg () == Alert Затем найдите объект настроек «Оповещение». Если foo.getTypeOfMsg () == "Test", тогда получите объект "Test". Правила управляются пользователем, и поэтому существуют бесконечные возможности. Объект foo извлекается веб-сервисом, и мне не нужно хранить его в базе данных.