【问题标题】:How to retrieve records from Hibernate having many to many relationship?如何从 Hibernate 中检索具有多对多关系的记录?
【发布时间】:2012-07-25 09:05:14
【问题描述】:

我有三张桌子

Users                           Deal                Dealusers
==========                     ======               ==========
userid(PK)                     dealid(PK)           dealid(PK+FK)
                                                    userid(PK+FK)

现在我已经在 Eclipse 中使用休眠工具生成映射 所以我得到了用户和交易表的 POJO 类和 hbm 文件,只是因为这种多对多关系。

现在我想查询“获取购买 dealid=1 的用户列表”

那么我应该如何使用休眠进行查询呢? 提前致谢。

<set name="userses" table="dealusers" inverse="false" lazy="true" fetch="select">
            <key>
                <column name="dealid" not-null="true" />
            </key>
            <many-to-many entity-name="com.test.model.Users">
                <column name="userid" not-null="true" />
            </many-to-many>
        </set>

【问题讨论】:

    标签: hibernate


    【解决方案1】:
    Deal deal = session.get(Deal.class, 1);
    return deal.getUsers();
    

    就这么简单。

    【讨论】:

    • 抱歉,我在生成的 hbm 文件中没有 User 对象,而不是它包含私有 Set userses = new HashSet(0);
    • 以上这组用户正是你要回的那组。
    • 是的,但是它的延迟加载所以我应该如何初始化它
    • Hibernate.initialize(deal.getUsers()); return deal.getUsers();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多