复杂条件查询:使用JPA代替NativeQuery

更多产品

我在我的Java EE项目中使用了MySQL的NativeQuery:

SELECT 
    *,
    ROUND((price_2-price_1)*100/price_1,2) AS varprice_1,
    ROUND((quantity_2-quantity_1)*100/quantity_1,2) AS varcant_1,
    ROUND((price_3-price_2)*100/price_2,2) AS varprice_2,
    ROUND((quantity_3-quantity_2)*100/quantity_2,2) AS varcant_2,
    1 
FROM ( 
    SELECT   
        c.id_customer AS id_customer, 
        c.name AS customer,   
        r.id_rep AS id_rep, 
        r.descr AS rep,   
        a.id_article AS id_article, 
        a.name AS article, 
        ROUND(SUM(if(docdate BETWEEN '2013-06-30' AND '2013-12-30',quantity ,0)),2) AS quantity_1,
        ROUND(SUM(if(docdate BETWEEN '2013-06-30' AND '2013-12-30',net_price,0)),2) AS price_1,
        ROUND(SUM(if(docdate BETWEEN '2012-06-30' AND '2012-12-30',quantity ,0)),2) AS quantity_2,
        ROUND(SUM(if(docdate BETWEEN '2012-06-30' AND '2012-12-30',net_price,0)),2) AS price_2,
        ROUND(SUM(if(docdate BETWEEN '2011-06-30' AND '2011-12-30',quantity ,0)),2) AS quantity_3,
        ROUND(SUM(if(docdate BETWEEN '2011-06-30' AND '2011-12-30',net_price,0)),2) AS price_3, 
        1 
    FROM documento d 
    RIGHT JOIN pedido_cabezal pc ON d.id_documento = pc.id_documento 
    LEFT JOIN pedido_linea pl ON pc.id_documento = pl.id_documento 
    LEFT JOIN article a ON pl.id_article = a.id_article 
    LEFT JOIN customer c ON pc.id_customer=c.id_customer 
    LEFT JOIN rep r ON c.id_rep=r.id_rep 
    WHERE ( 
        (docdate BETWEEN '2013-06-30' AND '2013-12-30') OR
        (docdate BETWEEN '2012-06-30' AND '2012-12-30') OR  
        (docdate BETWEEN '2011-06-30' AND '2012-12-30')  
        )  
    GROUP BY a.id_article  
) subq 
ORDER BY price_1 DESC

这是一个动态生成的查询,具体取决于用户输入。我不喜欢使用本机查询,所以我现在正在使用它,并且打算使用标准查询来更改它,但是我需要帮助:我无法弄清楚如何用标准查询代替这种查询。在这种情况下是否有办法使用本机查询,还是应该不再担心呢?

谢谢

佩里斯夫

不幸的是,您不能在from子句中使用JPA子查询结果。在条件查询和JPQL查询中都没有。这似乎是将查询转换为JPA的最大问题。

其次,也没有Round功能。但是通过使用它来克服这个问题应该不是问题CriteriaBuilder#selectCase()

也可以看看:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在复杂条件下使用JPA实体图

来自分类Dev

CakePHP查询-复杂的AND / OR条件

来自分类Dev

使用JPA条件查询获取列的最大值

来自分类Dev

使用JPA条件查询使用where子句计算*

来自分类Dev

使用where代替在SQL查询的join子句中添加条件会更好吗?

来自分类Dev

JPA NativeQuery中的MYSQL嵌套查询

来自分类Dev

.is()-使用AND代替OR条件

来自分类Dev

JPA条件查询中的复合谓词-同时使用and或or方法

来自分类Dev

JPA查询仅选择特定列而不使用条件查询?

来自分类Dev

如何在JPA中使用多个属性进行条件查询?

来自分类Dev

JPA条件联接查询

来自分类Dev

使用:代替@作为查询参数

来自分类Dev

使用复杂的条件逻辑连接Pyspark数据框(也许使用地图代替)

来自分类Dev

如何使用JPA使用AVG和GROUP创建条件查询

来自分类Dev

Elasticsearch使用OR查询代替AND查询

来自分类Dev

使用JPA条件查询使用where子句计算*

来自分类Dev

使用where代替在SQL查询的join子句中添加条件会更好吗?

来自分类Dev

在JPA条件API中使用子查询

来自分类Dev

eclipselink jpa使用COUNT(id)代替COUNT(*)生成计数查询

来自分类Dev

当查询字符串过于复杂时,可以使用HttpPost代替HttpGet吗?

来自分类Dev

JPA条件联接查询

来自分类Dev

使用:代替@作为查询参数

来自分类Dev

使用SQL查询的复杂过滤条件

来自分类Dev

具有多个条件的“复杂”查询(BEGINNER)

来自分类Dev

SQLite。DELETE 查询中的复杂条件?

来自分类Dev

Active Record where 复杂条件查询

来自分类Dev

JPA - 使用条件 JsonManagedReference 查询

来自分类Dev

我们如何使用 java 将复杂的 NativeQuery 结果映射到 DTO 对象

来自分类Dev

如何在 jpa nativequery 中执行 postgresql json 函数查询?

Related 相关文章

  1. 1

    在复杂条件下使用JPA实体图

  2. 2

    CakePHP查询-复杂的AND / OR条件

  3. 3

    使用JPA条件查询获取列的最大值

  4. 4

    使用JPA条件查询使用where子句计算*

  5. 5

    使用where代替在SQL查询的join子句中添加条件会更好吗?

  6. 6

    JPA NativeQuery中的MYSQL嵌套查询

  7. 7

    .is()-使用AND代替OR条件

  8. 8

    JPA条件查询中的复合谓词-同时使用and或or方法

  9. 9

    JPA查询仅选择特定列而不使用条件查询?

  10. 10

    如何在JPA中使用多个属性进行条件查询?

  11. 11

    JPA条件联接查询

  12. 12

    使用:代替@作为查询参数

  13. 13

    使用复杂的条件逻辑连接Pyspark数据框(也许使用地图代替)

  14. 14

    如何使用JPA使用AVG和GROUP创建条件查询

  15. 15

    Elasticsearch使用OR查询代替AND查询

  16. 16

    使用JPA条件查询使用where子句计算*

  17. 17

    使用where代替在SQL查询的join子句中添加条件会更好吗?

  18. 18

    在JPA条件API中使用子查询

  19. 19

    eclipselink jpa使用COUNT(id)代替COUNT(*)生成计数查询

  20. 20

    当查询字符串过于复杂时,可以使用HttpPost代替HttpGet吗?

  21. 21

    JPA条件联接查询

  22. 22

    使用:代替@作为查询参数

  23. 23

    使用SQL查询的复杂过滤条件

  24. 24

    具有多个条件的“复杂”查询(BEGINNER)

  25. 25

    SQLite。DELETE 查询中的复杂条件?

  26. 26

    Active Record where 复杂条件查询

  27. 27

    JPA - 使用条件 JsonManagedReference 查询

  28. 28

    我们如何使用 java 将复杂的 NativeQuery 结果映射到 DTO 对象

  29. 29

    如何在 jpa nativequery 中执行 postgresql json 函数查询?

热门标签

归档