private AppParameter appParameter = new AppParameter();
@Inject
private Logger logger;
@Inject
private EntityManager entityManager;
private String setTime;
private String showTime;
@PostConstruct//进页面就会加载这个方法
public void dataCall() {
appParameter = findSetTime();
if (appParameter == null) {
showTime = "0";
} else {
showTime = appParameter.getParamValue();
}
}
/**
* 设置settime
*/
@Transactional
public void timerTask() {
if (setTime != null && setTime != "") {
appParameter = new AppParameter();//不new AppParameter,赋值会报空指针因为查出来的结果为空赋值给appParameter了
appParameter.setParamCode(AppParamCode.SET_TIME);
appParameter.setParamValue(setTime);
entityManager.merge(appParameter);
dataCall();
}
}
/**
* .getSingleResult()抛出异常,用findSetTime去初始化 showTime
*
* @return
*/
public AppParameter findSetTime() {
List resultList = entityManager.createQuery("select a from AppParameter a where paramcode = 'SET_TIME'", AppParameter.class)
.getResultList();
if (resultList.size() > 0) {
return resultList.get(0);
} else {
return null;
}
}