Thanks for your reply so much! I checked topics again and create working method:
I hope it helps someone.
public Long count() {
var countBuilder = (HibernateCriteriaBuilder) builder; //CriteriaBuilder from class level
var countQuery = countBuilder.createQuery(Long.class);
var subQuery = countQuery.subquery(Tuple.class);
var sqmSubQuery = (SqmSubQuery<Tuple>) subQuery;
var sqmOriginalQuery = (SqmSelectStatement) query; // CriteriaQuery from class level
var sqmOriginalQuerySpec = sqmOriginalQuery.getQuerySpec();
var sqmSubQuerySpec = sqmOriginalQuerySpec.copy(SqmCopyContext.simpleContext());
sqmSubQuery.setQueryPart(sqmSubQuerySpec);
Root<?> subQuerySelectRoot = subQuery.getRoots().iterator().next();
sqmSubQuery.multiselect(subQuerySelectRoot.get("id").alias("id"));
countQuery.multiselect(countBuilder.count(countBuilder.literal(1)));
countQuery.from(sqmSubQuery.distinct(true).orderBy(builder.asc(subQuerySelectRoot.get("id"))));
return entityManager.createQuery(countQuery).getSingleResult();
}