Я работаю над созданием механизма запросов Hibernate, который может создавать динамические запросы. До сих пор я использовал Criterion API для генерации запросов. Мне трудно писать движок в оригинальном стиле. Я хочу иметь возможность создать новый класс для каждой ассоциации и передать ему фрагмент вызова SQL.
Например:
Человек может иметь дом, машину и лодку.
Я хочу, чтобы пользователь мог искать "Вернуть любого человека, у которого есть синий дом и красная лодка"
У меня есть карта searchTerm, которая выглядит так:
home.color = blue
boat.color = red
Я бы хотел, чтобы по одному критерию для каждого критерия (лодка, машина, дом) я мог передать всю карту, и он возвращает мне объект Criteria, который я могу использовать для построения своего запроса. Это теория. Проблема, с которой я сталкиваюсь, заключается в том, что в Hibernate мне нужно создать критерии или псевдоним, чтобы связать человека с лодкой / домом / автомобилем. Чтобы сделать это, я должен перейти в сеанс гибернации. Что я действительно хочу, так это иметь возможность вернуть отдельные критерии и объединить их все вместе. Но, похоже, это не способ сделать это.
В итоге:
Класс, который возвращает объект критерия, который создает ассоциации без объекта сеанса.
Есть мысли?
Спасибо за чтение!