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;
}