我想在此方法 getDataCount() 上从“total_recods”(查询类型)返回一个整数。如何以整数形式获取total_recods? 我编辑我的代码,但它返回 0,而我的数据库中有一些数据。
@Override
public int getDataCount() {
// TODO Auto-generated method stub
Query query=null;
int count=0;
try {
query= em.createNativeQuery("SELECT count(*) AS total_recods FROM Data");
count = ((Number) query.getSingleResult()).intValue();
logger.info(Logger.EVENT_SUCCESS,count);
} catch (Exception e) {
logger.error(Logger.EVENT_FAILURE, e.getMessage());
}
return count;
}
解决问题后,代码如下所示: 提示:计数类型应为长
@Override
public long getDataCount() {
// TODO Auto-generated method stub
long count=0;
try {
count = (long)em.createQuery("select count(*) from Data")
.getSingleResult();
} catch (Exception e) {
logger.error(Logger.EVENT_FAILURE, e.getMessage());
}
return count;
}
最佳答案
您放弃了结果。您应该这样做:
query= em.createNativeQuery("SELECT count(*) FROM Data");
int count = ((Number) query.getSingleResult()).intValue();
注意到我使用了Number
,因为有些数据库返回Long
,而其他数据库返回BigDecimal
。
关于java - 错误无法在 JPA 中找到名为 [total_recods] 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28010152/