【问题标题】:How to rewrite this H2 query using an unsupported feature如何使用不受支持的功能重写此 H2 查询
【发布时间】:2021-03-18 01:59:30
【问题描述】:

我有一个 JPA 实体

public class GenericRecord {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private LocalDate localDate;

    private String category;

    private Double amount;
}

目前我有一些代码可以生成如下所示的Map<String, Map<String, Double>>

我想使用 H2 数据库上的查询生成这张地图(数据已经在数据库中)。但是,似乎我正在使用不受支持的功能(是“+”运算符吗?):

如何重写查询,使其在 H2 上运行(但可能具有广泛的兼容性)?

编辑 1

这是有效的查询:

SELECT CATEGORY, CAST( MONTH(LOCAL_DATE) AS VARCHAR(2)) || '-' || CAST(YEAR(LOCAL_DATE) AS VARCHAR(4)) AS mi, SUM(AMOUNT)
FROM GENERIC_RECORD 
GROUP BY CATEGORY, CAST( MONTH(LOCAL_DATE) AS VARCHAR(2)) || '-' || CAST(YEAR(LOCAL_DATE) AS VARCHAR(4)) 

【问题讨论】:

    标签: java sql jpa h2


    【解决方案1】:

    H2 支持它,但你必须使用它作为 sql server 模式,请检查下面的链接。 http://h2database.com/html/features.html#compatibility

    要使用它,请将 ;MODE=MSSQLServer 附加到数据库 URL。示例网址: jdbc:h2:~/test;MODE=MSSQLServer

    另见:http://h2database.com/html/grammar.html#operand

    【讨论】:

      【解决方案2】:

      H2 SQL 数据库中,string concatenation operator||,而不是+

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        • 2018-08-08
        • 2014-11-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多