0

私は休止状態と春を使用してアプリケーションに取り組んでいます。ScrollableResults を使用してクエリで取得した結果の数を取得しようとしていますが、クエリに多数の結合 (内部結合) が含まれているため、結果には何度も繰り返される ID が含まれています。データベースから返された一意の行(または一意のID)の合計数を知るために使用している場合、これは ScrollableResults に問題を引き起こします。助けてください。コードの一部は次のとおりです。

        StringBuffer queryBuf = new StringBuffer("Some SQL query with lots of Joins");

        Query query = getSession().createSQLQuery(queryBuf.toString());

        query.setReadOnly(true);


        ScrollableResults results = query.scroll();
        if (results.isLast() == false)
            results.last();
        int total = results.getRowNumber() + 1;

        logger.debug(">>>>>>TOTAL COUNT<<<<<< = {}", total);

合計数は 1440 ですが、データベース内の実際の一意の行は 504 です。よろしくお願いします。

4

3 に答える 3

1

あなたが試すことができます

Integer count= ((Long)query.uniqueResult()).intValue();
于 2013-07-26T08:38:33.133 に答える