1

Hibernate を介して接続されている MySQL に基づいて開発されたアプリケーションがあります。DAO ユーティリティ コードを使用して、データベースにクエリを実行しました。ここで、インデックスによってデータベース クエリを最適化する必要があります。私の質問は、Hibernate DAO ユーティリティ コードを使用してデータをクエリし、クエリの実行時に MySQL データベースでインデックスが使用されるようにする方法です。既存の例へのヒントやポインタは大歓迎です!

更新:質問をもう少し理解しやすくしたいだけです。以下は、休止状態の DAO ユーティリティ コードを使用して MySQL データベースをクエリするために使用したコードです。ここでは HQL を直接使用していません。最善の解決策について何か提案はありますか? 必要に応じて、データベース クエリ コードを書き直し、代わりに HQL を直接使用します。

    public static List<Measurements> getMeasurementsList(String physicalId, String startdate, String enddate) {

    List<Measurements> listOfMeasurements = new ArrayList<Measurements>();
    Timestamp queryStartDate = toTimestamp(startdate);
    Timestamp queryEndDate = toTimestamp(enddate);

    MeasurementsDAO measurementsDAO = new MeasurementsDAO();
    PhysicalLocationDAO physicalLocationDAO = new PhysicalLocationDAO();
    short id = Short.parseShort(physicalId);
    List physicalLocationList = physicalLocationDAO.findByProperty("physicalId", id);
    Iterator ite = physicalLocationList.iterator();
    while(ite.hasNext()) {
        PhysicalLocation physicalLocation = (PhysicalLocation)ite.next();
        List measurementsList = measurementsDAO.findByProperty("physicalLocation", physicalLocation);
        Iterator jte = measurementsList.iterator();
        while(jte.hasNext()){
            Measurements measurements = (Measurements)jte.next();
            if(measurements.getMeasTstime().after(queryStartDate) 
                    && measurements.getMeasTstime().before(queryEndDate)) {
                listOfMeasurements.add(measurements);
            }
        }
    }

    return listOfMeasurements;
}
4

1 に答える 1