【问题标题】:hibernate how to map collection based on some criteria休眠如何根据某些条件映射集合
【发布时间】:2012-09-24 08:27:24
【问题描述】:

我试图只部分匹配一个集合,我的意思是例如 在我的 Product.hbm.xml 中,我有一个“recentOrders”,这意味着我只想要最新的订单(按“订单”的时间戳排序)

    <set cascade="all-delete-orphan" inverse="true" name="recentOrders" lazy="true"   >        
        <key on-delete="cascade">
            <column name="product_id" not-null="true"/>
        </key>
        <one-to-many class="com.xx.Order"/>
    </set>  

我应该使用“subselect”还是“where”的attribute?如果是,如何?

顺便说一句,我使用的是hibernate 3.x,hibernate不会添加任何由“subselect”或“where”属性指定的sql子句

【问题讨论】:

    标签: hibernate mapping


    【解决方案1】:

    这是good explanation。如果只是一次需要,您可以在 HQL 查询本身中执行此操作。还有另一种选择 - 使用过滤器,但请注意,它们是为会话设置的,而不是为特定查询设置的。

    【讨论】:

    • 感谢 ctapobep。如果有办法将此“recentOrders”映射为我的 Product 类的属性用于我的其他目的,那就太好了。
    • 没有得到您的问题,它与原始帖子中描述的问题有关吗?
    • 请原谅我的英语。我想说的是我需要将此 映射为 Product 类的属性,因此我可以将此属性重用于我的其他代码。
    • 我google了很多,似乎没有办法做到这一点。所以我只好用你推荐的,还是用这个stackoverflow.com/questions/9589299/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 2019-06-05
    • 2021-09-04
    • 2012-04-09
    • 2012-09-25
    相关资源
    最近更新 更多