java - 如何使用条件在 Hibernate 中实现选择和计数

标签 java spring hibernate

我是 hibernate 的新手,我有这样的查询:

select count(1) from (
SELECT COUNT (1)
FROM USR_BASE
WHERE ST_CD = 1
group by USR_NO)

如何使用条件在 Hibernate 中实现该查询?

因为,我已经用方法实现了:

public int totalUser(UsrBase usrBase) {
    Criteria criteria = createCriteria();
    String stCd = usrBase.getStCd();
    criteria.setProjection(Projections.projectionList())
            .add(Projections.property("usrNo"))
            .add(Projections.property(stCd))
            .add(Projections.groupProperty("usrNo")));

    return((Long)criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();

}

结果与我的查询不一样...请帮助我。

最佳答案

select count(1) from (
SELECT COUNT (1)
FROM USR_BASE
WHERE ST_CD = 1
group by USR_NO)

我认为这会更容易

select count(distinct(USR_NO)) from USR_BASE WHERE ST_CD = 1

关于java - 如何使用条件在 Hibernate 中实现选择和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52751723/

相关文章:

java - IntelliJ IDEA 生成 serialVersionUID

java - 在 Spring Batch 管理中加载外部配置文件

Spring、spring Batch、hibernate 和 JUnit 以及多个集成测试的初始化

java - 通过接口(interface)在Realm对象中添加方法

java - Apache 命令行解析器错误?

java - 使异步代码阻塞

java - 使用Spring框架的构造函数依赖注入(inject),无法保留值

java - 如果缓存了 MockHttpServletRequestBuilder,则 MockMvc.perform 会抛出带有并行流的 ConcurrentModificationException

java - 当复合键与实体一起使用时,分离的实体被传递以保留

java - 使用 Set 而不是 List 时出现 JsonMappingException