sqlRestriction なしで以下を最適化するにはどうすればよいですか。
public List<SomeEntity> getEntityByYearMonthAndDay(Calendar cal) {
Criteria criteria = helper.createCriteria();
criteria.add(sqlRestriction("(DATE(date_column) = ?)", cal.getTime(), org.hibernate.type.StandardBasicTypes.DATE));
return criteria.list();
}
SomeEntity は次のようになります。
@Entity
@Table(name="some_table")
public class SomeEntity extends Identifiable {
@Column(name = "date_column")
private Calendar dateColumn;
//Getters and setters
}
DB には次のような表現があります: date_column => datetime (YYYY-MM-DD HH:mm:ss)。
ロジックが日付を切り捨てた時間値のみを比較することは明らかです。