Здравствуйте, Denis_Orlov, Вы писали:
D_O>Здравствуйте, Blazkowicz, Вы писали:
B>>Странные вещи вы рассказываете. Т.е. если из маппинга убрать set, где упоминается mapping_table, то будет работать нормально???
Давайте рассуждать. Происходит следующая картина.
Существует 2 таблицы:
1. Основная
2. Mapping
Связываются они через hibernate mapping как set outer-join="true" — т.е. в нативном SQL left join.
Я в коде для поддержания paging по средством базы через hibernate ставлю:
criteria.setMaxResults(pagesize);
criteria.setFirstResult(firstresult);
Что в нативном SQL (Oracle) выглядит как (rownum < pagesize).
Соответственно у нас вынимается pagesize строк.
Но, тут срабатывает left join который для одного unique ID может вернуть не одну строку а столько, сколько в таблице Mapping для этого id есть записей.
Что получаем в конце.
Или hibernate вернёт количество объектов < pagesize, что плохо, или он чтобы количество объектов было равно ожидаемому размножит объект, который
пришлось клеить.
Вот примерное видение ситуации с моей стороны.
Есть идеи?