我已经使用spring mvc和hibernate开发了一个应用程序。计划任务每2分钟更新一次我的数据库(mysql)的新数据,然后通过休眠查询检索此数据。注意到了一个问题,尽管我的数据库始终具有值,但有时休眠会从表中返回空列表,有时它会获取最新值。
这是仅在生产中出现的问题。 这就是我从javascript调用的方式,
$.ajax({
type : "GET",
contentType : "application/json",
url : "/myapp/getData",
dataType : 'json',
timeout : 100000,
success : function(res) {
console.log("result: ", res);
//process data
},
error : function(e) {
console.log("ERROR: ", e);
},
done : function(e) {
console.log("DONE");
}
});
还有我的Java代码:
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date sDate = new Date();
SessionFactory factory = HibernateUtil.getSessionFactory();
Session session = factory.openSession();
List<Weather> wlist = null;
Date fDate=getStartOfDay(sDate);
Date tDate=getEndOfDay(sDate);
Query query = session.createQuery("from Weather wr WHERE wr.addDate BETWEEN :stDate AND :endDate ORDER BY id desc");
query.setParameter("stDate", sdf1.parse(sdf1.format(fDate)));
query.setParameter("endDate", sdf1.parse(sdf1.format(tDate)));
query.setMaxResults(1);
wlist = query.list();
session.clear();
session.close();
return wlist;
休眠映射:
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.cache.use_second_level_cache">false</property>
<property name="hibernate.cache.use_query_cache">false</property>
<property name="show_sql">true</property>
<property name="hibernate.connection.CharSet">utf8</property>
<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.connection.useUnicode">true</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>
我有时会得到数据,有时会得到空列表。请帮忙。 生产设置还需要做更多的事情