这是我的行动:
public class TestPollAction extends ActionSupport {
private static final long serialVersionUID = 2753118140091192432L;
public String execute() {
String temp = "start";
while(!"accepted".equals(temp)) {
temp = getJobStatus("2");
System.out.println("temp: " + temp);
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return SUCCESS;
}
public static String getJobStatus(String jobId) {
Session session = HibernateUtil.getSession();
String jobStatus = null;
JobBoard jobBoard = null;
try {
jobBoard = (JobBoard) session.createQuery("from " + JobBoard.class.getSimpleName() + " where jobId = :jobId )").setParameter("jobId", jobId).uniqueResult();
jobStatus = jobBoard.getStatus();
} catch (HibernateException e) {
// TODO: handle exception
e.printStackTrace();
} finally {
session.flush();
session.close();
}
return jobStatus;
}
}
我从邮递员那里呼唤这个行动。然后使用MySQL Workbench,我正在更新数据库,将状态字段设置为"已接受"然后单击"应用"它将更改提交到数据库。
但System.out.println("temp: " + temp);
没有向我显示更新后的值,它会一直显示我"开始"。
答案 0 :(得分:1)
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.11.Final</version>
</dependency>
这是应该使用的。我有不同的依赖。