Hirbernate 二級緩存引發的問題

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章