이전 버전의 휴지 상태(~2009)를 사용하여 행을 카운트하려면 어떻게 해야 합니까?
예를 들어, 테이블 북이 있는 경우 최대 절전 모드가 있는 총 북 레코드 수는 어떻게 계산합니까?
이전 버전의 휴지 상태(<5.2)의 경우:
클래스 이름이 Book인 경우:
return (Number) session.createCriteria("Book")
.setProjection(Projections.rowCount())
.uniqueResult();
적어도 a다.Number
, 대부분의 경우Long
.
자바에서는 보통 int를 반환하고 다음 양식을 사용해야 합니다.
int count = ((Long)getSession().createQuery("select count(*) from Book").uniqueResult()).intValue();
동면 중인 공식 의사가 이에 대해 알려준 내용은 다음과 같습니다.
쿼리 결과 수를 반환하지 않고 셀 수 있습니다.
( (Integer) session.createQuery("select count(*) from ....").iterate().next() ).intValue()
하지만 항상 돌아오는 것은 아닙니다.Integer
instance를 사용하는 것이 좋습니다.java.lang.Number
안전을 위해서.
시도해 보세요.count(*)
Integer count = (Integer) session.createQuery("select count(*) from Books").uniqueResult();
어디에Books
이름에서 따온 것입니다.class
- 데이터베이스의 테이블이 아닙니다.
휴지 상태 5+를 사용하는 경우 쿼리는 다음과 같이 수정됩니다.
Long count = session.createQuery("select count(1) from Book")
.getSingleResult();
또는 TypedQuery가 필요한 경우
Long count = session.createQuery("select count(1) from Book",Long.class)
.getSingleResult();
Long count = (Long) session.createQuery("select count(*) from Book").uniqueResult();
이것은, 휴지 상태 4(테스트 완료)로 동작합니다.
String hql="select count(*) from Book";
Query query= getCurrentSession().createQuery(hql);
Long count=(Long) query.uniqueResult();
return count;
여기서 getCurrentSession()은 다음과 같습니다.
@Autowired
private SessionFactory sessionFactory;
private Session getCurrentSession(){
return sessionFactory.getCurrentSession();
}
매우 간단합니다. 다음 JPQL 쿼리를 실행하면 됩니다.
int count = (
(Number)
entityManager
.createQuery(
"select count(b) " +
"from Book b")
.getSingleResult()
).intValue();
저희가 섭외하는 이유는Number
일부 데이터베이스가 복구될 것이라는 점입니다.Long
다른 사람들이 돌아올 때BigInteger
휴대성을 위해서, 캐스트에 캐스트 하는 것이 좋습니다.Number
또,int
또는long
카운트될 것으로 예상되는 행 수에 따라 달라집니다.
언급URL : https://stackoverflow.com/questions/1372317/how-do-we-count-rows-using-older-versions-of-hibernate-2009
'programing' 카테고리의 다른 글
VueJ 2.0: 서브폴더로의 전개가 공백으로 표시됩니까? (0) | 2022.08.11 |
---|---|
유형 스크립트 Vue: 메서드에 동적 문자열 이름 사용 (0) | 2022.08.11 |
특정 인터페이스에서 cURL을 사용하는 방법 (0) | 2022.08.11 |
Spring Security 인증과 cookie의 교차 발신지 vs Authorization 헤더 (0) | 2022.08.11 |
페이지 새로 고침 후 v-treeview 상태를 유지하는 방법 (0) | 2022.08.11 |