我已经知道像以下这样的普通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;
}
我做错了什么?欢迎任何帮助/建议。
答案 0 :(得分:2)
尝试使用em.createNativeQuery()
,这是普通SQL查询应该使用的内容。