Я хочу запутать слой доступа к данным, который написан с использованием NHibernate. Проблема заключается в том, что сопоставления выполняются в файлах XML, которые встраиваются в виде ресурсов в библиотеку классов - это означает, что сопоставления находятся в открытом тексте.
Два возможных решения:
1. Атрибуты Nhibernate Mapping (NHMA) для декорирования отображаемых сущностей (поэтому, когда запускается запутанный код, NHibernate сопоставит его с обфусцированными именами классов)
2. Свободный NHibernate (опять же, отображение в коде, поэтому запутывание не должно быть проблемой - я думаю).
Теперь оба эти решения не будут работать, если мы будем использовать HQL для выполнения запросов - поскольку запросы будут ссылаться на исходные имена классов и полей / свойств!
Есть ли решение для этого? Можем ли мы иметь псевдонимы классов / свойств в сопоставлениях NHMA / Fluent?
Поможет ли API Criteria API, если мы конвертируем HQL-запросы в API-интерфейс NHibernate?
(Я знаю преимущества и недостатки / бесполезность запутывания и цель, для которой это полезно - поэтому этот вопрос вовсе не предназначен для обсуждения этого. Другими словами, пожалуйста, не беспокойтесь о обсуждении «почему», я хочу сделай это!)
Спасибо
Кришна.