获取数据库大小 Java(JPA)

Get Database size Java(JPA)

我已经知道像下面这样的普通 SQL 查询将 return 大小 my_db 以兆字节为单位。

SELECT SUM(data_length + index_length ) /1024 /1024 FROM information_schema.TABLES WHERE table_schema = 'my_db' GROUP BY table_schema"

虽然我无法在 Java 上下文中执行此操作,但我也没有在 JPA 中找到它的等效项。

有没有像我正在尝试的那样不使用本机 sql 来获取数据库大小的方法?

我尝试了以下方法,但出现与 sql 语法相关的异常。

public Long dbSize(){
    TypedQuery<Long> query = em.createQuery(
            "SELECT SUM(data_length + index_length ) /1024 /1024 FROM information_schema.TABLES WHERE table_schema = 'my_db' GROUP BY table_schema" , Long.class);
    long size = query.getSingleResult();
    return size;
}

我做错了什么?欢迎任何 help/suggestion。

尝试使用 em.createNativeQuery(),这应该用于普通 SQL 查询。