2015-11-17 4 views
0

У меня есть модель, которая выглядит как:NHibernate Envers модифицированных столбцов не правильно отслеживать абсорбцию из коллекции

class Case 
{ 
    public virtual ISet<CaseToCaseTag> CaseTags { get; set; } 
    public virtual DateTime LastModified { get; set; } 
} 

class CaseToCaseTag 
{ 
    public virtual Case Left { get; set; } 
} 

При ревизии этих отношений с Envers, я бег в проблемы с модифицированным отслеживанием имущества при удалении значений из набора.

Если только, что я изменить в прецедентном лице при удалении значения из множества «набор-удаление», то Envers правильно отслеживает, что CaseTags свойства изменяется в процессе пересмотра. Однако, если я также изменил любое другое свойство, например свойство LastModified, я не правильно установил флаг CaseTags_MOD.

Я отследил это (я думаю) до метода AuditProcess.AddWorkUnit. Когда я удаляю только из набора, добавляется только один WorkUnit (a CollectionChangeWorkUnit), но когда я также меняю другое свойство, то добавляется еще WorkUnit (a ModWorkUnit).

Что-то похожее на то, что CollectionChangeWorkUnit отбрасывается в пользу ModWorkUnit, что, в свою очередь, не подбирает изменения в коллекции.

Является ли то, что я пытаюсь не поддерживать, или есть способ обойти его?

ответ

1

Звучит как ошибка. Создайте запрос на растяжение с минимальным отображением, чтобы воспроизвести проблему.

+0

Отлично, я только разворачиваю репо. В течение дня будет выставлен запрос на вытягивание. – aeliusd

+0

Ваш запрос на перенос был объединен, исправлено https://nhibernate.jira.com/projects/NHE/issues/NHE-146 – Roger

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