cra*_*man 241 java hibernate count
例如,如果我们有一个表Books,我们如何计算hibernate的书记录总数?
Sal*_*dur 310
对于旧版本的Hibernate(<5.2):
假设班级名称为Book:
return (Number) session.createCriteria("Book")
.setProjection(Projections.rowCount())
.uniqueResult();
Run Code Online (Sandbox Code Playgroud)
它至少是一个Number,很可能是一个Long.
mar*_*osh 102
在Java中,我通常需要返回int并使用以下形式:
int count = ((Long)getSession().createQuery("select count(*) from Book").uniqueResult()).intValue();
Run Code Online (Sandbox Code Playgroud)
Ant*_*nio 43
以下是官方hibernate文档告诉我们的内容:
您可以计算查询结果的数量而不返回它们:
( (Integer) session.createQuery("select count(*) from ....").iterate().next() ).intValue()
Run Code Online (Sandbox Code Playgroud)
但是,它并不总是返回Integer实例,因此最好使用java.lang.Number安全性.
Jon*_*kes 12
你可以试试 count(*)
Integer count = (Integer) session.createQuery("select count(*) from Books").uniqueResult();
Run Code Online (Sandbox Code Playgroud)
Books名称在哪里class- 而不是数据库中的表.
Long count = (Long) session.createQuery("select count(*) from Book").uniqueResult();
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Hibernate 5+,则查询将被修改为
Long count = session.createQuery("select count(1) from Book")
.getSingleResult();
Run Code Online (Sandbox Code Playgroud)
或者如果你需要TypedQuery
Long count = session.createQuery("select count(1) from Book",Long.class)
.getSingleResult();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
244618 次 |
| 最近记录: |