【问题标题】:Select all items from a list in hibernate从休眠中的列表中选择所有项目
【发布时间】:2011-09-15 16:45:56
【问题描述】:

我有一个产品 ID 列表,我想通过休眠查询从我的数据库中获取所有产品。我该怎么做?

List<Integer> list = custumor.getCart();
Query query = query("select product from Product product where product.id =: list");

我知道这不是解决此问题的最佳方法,但我只想知道如何测试列表中的所有值。

【问题讨论】:

    标签: java sql database hibernate


    【解决方案1】:

    您需要做两件事...第一是将您的 HQL 更改为以下(使用 IN),第二是绑定您的参数列表:

    Query query = query("select product from Product product where product.id IN :list")
        .setParameterList("list", list);
    

    【讨论】:

      【解决方案2】:

      不确定我是否明白,但请查看此链接:http://www.coderanch.com/t/217864/ORM/java/Hibernate-retrieve-data-database

      特别是这个sn-p:

       public static void retrieve() {
        AnnotationConfiguration config = new AnnotationConfiguration();
        config.addAnnotatedClass(User.class);
        SessionFactory factory= config.configure().buildSessionFactory();
        Session session = factory.getCurrentSession();
        session.beginTransaction();
        Query queryResult = session.createQuery("from User");
        java.util.List allUsers;
        allUsers = queryResult.list();
        for (int i = 0; i < allUsers.size(); i++) {
         User user = (User) allUsers.get(i);
        }
       System.out.println("Database contents delivered..."); 
       }
      

      实际上,我刚刚重新阅读了您的问题,我看到您想要一个子选择。您应该考虑使用如下查询:

      List<Integer> list = custumor.getCart();
      Query query = query("select product from Product product where product.id IN (: list)");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多