Hirbernate 的二級緩存不受控 可能引發的問題
query.setCacheable(true);
使用查詢緩存 可能第一次沒取到數據就無法緩存 認定該語句無返回結果 即使你把語句丟到
數據庫工具中能查到數據 該方法也返回的結果也是沒有數據
public List<Object> getSyllabusByNowTime(String date) {
StringBuilder sql = new StringBuilder();
sql.append("SELECT s.*,b.class_name className,c.subject_name subjectName,d.teacher_name teacherName,e.syllabustype_Name syllabustypeName ");
sql.append("FROM TBL_DRM_SYLLABUS s,TBL_DRM_CLASS b,TBL_DRM_SUBJECT c,TBL_DRM_TEACHER d,DATA_DRM_SYLLABUSTYPE e ");
sql.append("where s.TEACHER_ID = d.TEACHER_ID ");
sql.append("and s.subject_Id = c.subject_Id ");
sql.append("and s.class_Id = b.class_Id ");
sql.append("and s.syllabus_Type = e.syllabustype_Id ");
sql.append("and s.DEL_FLG = 0 and b.DEL_FLG = 0 ");
sql.append("and s.SYLLABUS_DATE = '");
sql.append(date+" 00:00:00.000' ");
sql.append("and datediff(hour,getdate(),CAST(SUBSTRING(CONVERT(varchar, s.SYLLABUS_DATE, 120 ),0,11)+' '+SUBSTRING(s.CLASS_PERIOD,0,6) as datetime))<10 ");
sql.append(" order by s.SYLLABUS_DATE desc");
Query query = getSession().createSQLQuery(sql.toString());
//query.setCacheable(true);
System.out.println(sql.toString());
List<Object> objs = query.list();
return objs;
}