首页 > 解决方案 > 如何通过 JPQL 从 SQL 计数返回布尔结果

问题描述

我对 sql 查询有一个简单的问题。我需要得到真假,我尝试了多种方法,但没有好的结果。此查询返回 0,因为我在数据库中的记录为零。也许应该调整条件。感谢所有的想法。

public boolean getAnalysisByUserId(final Integer userId) {
    Objects.requireNonNull(userId, "Integer userId cannot be null.");

    final Query query = this.manager.createQuery("select count(a) from AnalysisRequest a where" + " a.userId = :userId",
        AnalysisRequest.class);

    query.setParameter("userId", userId);

    if (query.getSingleResult().equals(0)) {
      return false;
    }
    return true;
  }

标签: javamysqljpql

解决方案


解决了,谢谢大家。

public boolean getAnalysisByUserId(final Integer userId) {
    Objects.requireNonNull(userId, "Integer userId cannot be null.");

final Query query = this.manager
    .createNativeQuery("select count(a.id) from AnalysisRequest a where a.userId = ?1");
query.setParameter(1, userId);

final Long result = (Long) query.getSingleResult();

return result != null && result > 0;
 }

推荐阅读