java - 错误无法在 JPA 中找到名为 [total_recods] 的参数

标签 java sql hibernate jpa orm

我想在此方法 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/

相关文章:

java - libgdx font.setscale 给出巨大的值

规范化表中的 PHP 和 MySQL

java - hibernate是否默认使用PreparedStatement

hibernate - 从sessionFactory切换到EntityManager后,InvalidDataAccessApiUsageException

java - 错误 [org.jboss.msc.service.fail](MSC 服务线程 1-4)MSC00001 : Failed to start service

java - 使用 Spring Security 3 实现 CAS

java - 使用 Java 创建 excel

java - mvn依赖:copy from the cli

mysql - 如何使用mysql中的find_in_set()函数来过滤数据?

performance - 为什么 SQL Server ce 中的 Select * FROM Table where ID NOT IN (list of int ids) 查询速度很慢?