获取数据库大小Java(JPA)

时间:2015-03-03 15:52:54

标签: java jpa

我已经知道像以下这样的普通SQL查询将以兆字节为单位返回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;
}

我做错了什么?欢迎任何帮助/建议。

1 个答案:

答案 0 :(得分:2)

尝试使用em.createNativeQuery(),这是普通SQL查询应该使用的内容。