Re[3]: Hibernate mapping problems
От: Denis_Orlov  
Дата: 07.10.09 10:45
Оценка:
Здравствуйте, 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, что плохо, или он чтобы количество объектов было равно ожидаемому размножит объект, который
пришлось клеить.

Вот примерное видение ситуации с моей стороны.
Есть идеи?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.