Я надеялся, что на этот вопрос будет простой ответ ...
У меня есть глобальный фильтр, предназначенный для предотвращения мягких удалений в базе данных, он отлично работает в остальной части моей системы. Однако мы используем устаревшую базу данных с существующей таблицей «UserBase», любые необходимые нам новые свойства мы добавляли в таблицу «User» и отображали наш класс User для извлечения данных. из 2 таблиц с использованием сопоставления "join" - таким образом мы не изменяем существующую таблицу "UserBase".
Опять же, это работает нормально, пока мы не попытаемся применить фильтр мягкого удаления к классу, поскольку сгенерированный SQL применяет фильтр к таблице «BaseUser», в которой нет соответствующего столбца.
<class name="User" table="UserBase">
<id name="Id" column="userid" type="Int32" unsaved-value="-1">
<generator class="native">
<param name="sequence"></param>
</generator>
</id>
<property name="Email" column="UserEmail" type="String" length="100" />
.........
.........
<join table="User" optional="false">
<key column="UserID" />
<property name="TimeZone" column="timezone" type="Int32" />
.........
.........
<property name="IsDeleted" column="IsDeleted" type="Boolean" />
</join>
<filter name="AvoidLogicalDeleted" condition="IsDeleted = 0" />
</class>
Есть ли способ применить фильтр к «объединенной» таблице, а не к таблице классов?
Я также попытался указать «подвыбор» в сопоставлении «соединение» с предложением where, игнорирующим мягкие удаления, но, похоже, он игнорируется !?
Мы будем очень признательны за указание в правильном направлении ....