【问题标题】:Hibernate Criteria for list列表的休眠条件
【发布时间】:2012-06-27 12:24:41
【问题描述】:

美好的一天,

我有一个看起来像这样的 Hibernate 映射:

public class Item implements Serializable {
      private lond id;
      private String Name;
      private boolean status;
      ...

}

public class ItemHolder  implements Serializable {
      private long id;
      private List<Item> items;
      ...
}

如何查询所有物品持有者的女巫都包含我的物品? (带标准)

【问题讨论】:

    标签: java hibernate criteria contains


    【解决方案1】:

    您只需要加入:

    Criteria c = session.createCriteria(ItemHolder.class, "itemHolder");
    c.createAlias("itemHolder.items", "item");
    c.add(Restrictions.eq("item.id", theItemId);
    

    【讨论】:

    • 这没问题,但如果项目条件多次匹配,则可以回答重复的 ItemHolders。例如 -- 如果按通配符名称搜索项目。
    【解决方案2】:

    查询可能是这样的:

    Item loadedItem = ...;
    Query query = session.createQuery("from ItemHolder ih where :item in elements(ih.items)");
    query.setParameter("item", loadedItem);
    List list = query.list();
    

    【讨论】:

      【解决方案3】:
      Criteria criteria=session.createCriteria(ItemHolder.class);
      criteria.createAlias("items", "item"); 
      criteria.add(Restrictions.eq("item.Name", "my Item").ignoreCase());
      

      您可以根据您的要求进行限制:id 或 name..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多