Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate 4.3子查询和内选择_Java_Hibernate - Fatal编程技术网

Java Hibernate 4.3子查询和内选择

Java Hibernate 4.3子查询和内选择,java,hibernate,Java,Hibernate,我在hibernate4.3.x中遇到这种情况 我有两张桌子,产品和存货 我有一对多的关系,一个产品有很多存货 通过在库存表中列出可用库存的总和来检查产品的可用性 因此,我有一个自定义查询: SELECT p.product_id, p.status_id, p.product_name, (SELECT COALESCE(SUM(i.available),0) FROM inventory i WHERE i.product_id = p.product

我在hibernate4.3.x中遇到这种情况

  • 我有两张桌子,产品和存货
  • 我有一对多的关系,一个产品有很多存货
  • 通过在库存表中列出可用库存的总和来检查产品的可用性
  • 因此,我有一个自定义查询:

    SELECT 
        p.product_id, 
        p.status_id, 
        p.product_name, 
        (SELECT COALESCE(SUM(i.available),0) FROM inventory i WHERE i.product_id = p.product_id AND i.status_id = 1) AS available 
    FROM product p
    

    我想使用条件进行此查询,我一直在select中进行sum子查询,在Hibernate中如何执行此操作?我必须使用投影吗?在这种情况下如何使用投影?

    where子句是什么?如果始终相同,且仅参数值发生变化。。然后,也许您应该使用@NamedQuery,这一直是首选方法。那么您将使用JPQL而不是criteria.Hi@MaciejKowalski,我没有使用WHERE子句,因为我现在不需要它,我想列出所有的产品。你是说HQL吗?在这种情况下,我会选择JPQL/HQL(取决于使用SessionFactory还是EntityManagerFactory)。只有当查询的结构可能基于某些逻辑发生变化时,才应使用Crtieria。但事实并非如此。你已经试过HQL了吗。。如果是,你有问题吗?