Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > [hibernate] Выводится не верное кол-во записей.


Автор: dEEp 26.7.2009, 23:29
Есть две сущности: посты и комментарии.
Связаны они как один-ко-многим.

Post.hbm.xml
Код

        <set name="comment" inverse="true" cascade="all-delete-orphan" outer-join="true">
            <key column="id"/>
            <one-to-many class="com.ghs.model.entity.Comment"/>
        </set>


Comment.hbm.xml
Код

<many-to-one name="post" column="id" class="com.ghs.model.entity.Post" insert="false" update="false"/>


получение постов:
Код

public List<Post> findAllOpenOrClosePosts(int start, int max, boolean isOpen) {
        DetachedCriteria criteria = DetachedCriteria.forClass(Post.class);
        criteria.add(Restrictions.eq(Const.IS_CLOSE, isOpen));
        return getHibernateTemplate().findByCriteria(criteria, start, max);
    }


использование метода получения постов:
Код

List<Post> list = postActions.findAllOpenOrClosePosts(0, 10, isClose);
        for (Post aList : list) {
            System.out.println("Тема: " + aList.getTheme());
            System.out.println("Текст: " + aList.getShotText());
            if (aList.getComment() != null)
                System.out.println("Кол-во комментариев: " + aList.getComment().size());
            System.out.println("##################################");
        }



Так вот вопрос, почему-то в строке, где выводится кол-во комментариев - всегда полчается число 1. Хотя там кол-во комментариев для найденного поста = 6.

Ради интереса в маппинге поменял использование set на list. Получил 2 поста. И смешно и не очень. В чём может быть причина такой вот ситуации?

Автор: MisterCleric 27.7.2009, 11:17
А можно увидеть какие запросы при этом вызываются?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)