Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-TimerTask-org.hibernate.HibernateException:未找到当前线程的会话_Java_Spring - Fatal编程技术网

Java-TimerTask-org.hibernate.HibernateException:未找到当前线程的会话

Java-TimerTask-org.hibernate.HibernateException:未找到当前线程的会话,java,spring,Java,Spring,我的编码在getTokenDAO().updateDate(newtok,newDate())上有错误它弹出的行org.hibernate.hibernate异常:未找到当前线程的会话。请帮我解决这个问题。这是我的代码 Timer t = new Timer(); t.scheduleAtFixedRate( new TimerTask() { public void run() { try { getTokenDA

我的编码在
getTokenDAO().updateDate(newtok,newDate())上有错误它弹出的行
org.hibernate.hibernate异常:未找到当前线程的会话
。请帮我解决这个问题。这是我的代码

Timer t = new Timer();
t.scheduleAtFixedRate(
    new TimerTask() {
        public void run() {
            try {
                getTokenDAO().updateDate(newtok, new Date());
            } catch (Exception e) {
                e.printStackTrace();
            }
            System.out.println("5 minutes passed");
        }
    },
    0,      // run first occurrence immediately
    300000);  
}

PS:我正在使用Spring,调度程序将在一个新线程中运行您的
TimerTask
。会话/事务保存在ThreadLocal变量中


您必须在
TimerTask
中的
run()
方法中打开一个新事务。调度程序将在新线程中运行
TimerTask
。会话/事务保存在ThreadLocal变量中

您必须在
TimerTask
中的
run()
方法中打开一个新事务