获取数据库大小 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 查询。
我已经知道像下面这样的普通 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 查询。