我已经知道像下面这样的普通 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
中找到其等效项。
有什么方法可以在不使用 native 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;
}
我做错了什么?欢迎任何帮助/建议。
最佳答案
尝试使用 em.createNativeQuery()
,这应该用于纯 SQL 查询。
关于java - 获取数据库大小 Java(JPA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836074/