NHibernate несколько соединенных подклассов и дубликаты имен столбцов с использованием критериев

Предположим, у нас есть эта структура сущности:

Document
- DocumentA
- DocumentB

В базовом классе Document у нас есть поля Id, Name, CreateDate. В объединенном подклассе DocumentA у нас есть поля Book, Pages. А в DocumentB у нас есть журнал, страницы.

Так что проблема в том, когда я пытаюсь получить записи с критериями:

var prj = Projections.ProjectionList();
foreach (var col in selectColumns)
{
    prj.Add(Projections.Property(col), col);
}
criteria.SetProjection(prj).SetResultTransformer(new AliasToBeanResultTransformer(entityType));

Таким образом, если у нас в столбцах selectColumns два столбца Pages, NHibernate будет выбирать только данные из первого. На самом деле он даже генерирует SQL-запрос, как это

SELECT top 15 
this_1_.Pages as y0_
, this_1_.Pages as y1_
, this_.CreationDate as y2_
, this_.CreationAuthor as y3_
, this_.Name as y4_
, this_.Id as y5_
FROM Document this_ 
left outer join DocumentA this_1_ on this_.Id=this_1_.Id 
left outer join DocumentB this_2_ on this_.Id=this_2_.Id 

Кто-нибудь знает, как решить мою проблему, используя критерии? Кстати, у меня нет возможности изменить эту структуру, в этой системе пользователь может определять свои собственные классы и вложенные классы.

0 ответов

Другие вопросы по тегам