2014-09-24 6 views
0

Я использую Envers для проверки некоторых из моих таблиц DB. Ревизионная WOKING хорошо, я могу видеть данные в БД в соответствующих таблицах с моим обычаем приставкой и т.д. Я не могу запросить любые данные becouse я получаю всегда следующий QueryException:Envers with Nhibernate

не может разрешить свойство: originalId из: NaturalPerson [выберите e__, r__ из NaturalPerson e__, ExtendedRevisionEntity r__, где e__.originalId.RevisionID.id = r__.id упорядочить по возрастанию e__.originalId.RevisionID.id]

Это код запроса:

AuditReaderFactory.Get(session).CreateQuery().ForHistoryOf<NaturalPerson, ExtendedRevisionEntity>().Results(); 

Составы для природного населения

<?xml version="1.0" encoding="utf-8"?> 
<hibernate-mapping assembly="Domain" namespace="Domain" xmlns="urn:nhibernate-mapping-2.2"> 
    <joined-subclass name="NaturalPerson" schema="MySchema" table="NaturalPersons"> 
    <key column="PersonID" /> 
    <property name="Name" type="AnsiString"/> 
    </joined-subclass> 
</hibernate-mapping> 

Envers конфигурации с использованием свободно:

configuration.SetEnversProperty(ConfigurationKey.AuditTableSuffix, " "); 
configuration.SetEnversProperty(ConfigurationKey.DefaultSchema, "aud"); 
configuration.SetEnversProperty(ConfigurationKey.StoreDataAtDelete, true); 
configuration.SetEnversProperty(ConfigurationKey.RevisionFieldName, "RevisionID"); 
configuration.SetEnversProperty(ConfigurationKey.RevisionTypeFieldName, "RevisionTypeID"); 
enversConf.Audit<NaturalPerson>(); 
+0

Конфигурации и настройки для NaturalPerson, пожалуйста. – Roger

+0

Я добавил эту информацию в ответ – brunobv14

+0

Часть из «NaturalPerson» выглядит немного подозрительно. Можете ли вы посмотреть на сгенерированный sql и проверить, что на самом деле пытается прочитать из таблицы аудита? Установка AuditTableSuffix в пустые/пробелы _might_ будет проблемой. – Roger

ответ

0

Как указано в приведенных выше замечаний, проблема является "только пробелы" в AuditTableSuffix.

Проверенный имя лица в код audittableprefix + «оригинальное имя сущности» + audittablesuffix

При выполнении запроса, в «пустое пространство» ничего не значит («select a from b a„становится“select a from b a») и неправильные данные читать.

Пожалуйста, добавьте здесь вопрос JIRA https://nhibernate.jira.com/browse/NHE желательно с небольшим изолированным тестом на отказ.

Смежные вопросы