Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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 多线程情况产生UnknownEntityTypeException:无法找到持久化程序_Java_Spring_Multithreading_Hibernate_Jpa - Fatal编程技术网

Java 多线程情况产生UnknownEntityTypeException:无法找到持久化程序

Java 多线程情况产生UnknownEntityTypeException:无法找到持久化程序,java,spring,multithreading,hibernate,jpa,Java,Spring,Multithreading,Hibernate,Jpa,我看到了其他关于这个错误的文章,但我看到的没有一篇是完全正确的。我的情况是,我有一个现有的quartz任务,它按计划处理记录。写在春天和冬眠和伟大的作品。新的要求,我们即将得到大量的高容量,这一过程无法处理的书面。所以除了一些其他优化之外,我还尝试对其进行多线程处理 我声明并正在使用Spring的TaskExecutor,它肯定会调用新线程,但我一运行查询,就会得到以下结果: org.hibernate.UnknownEntityTypeException: Unable to locate p

我看到了其他关于这个错误的文章,但我看到的没有一篇是完全正确的。我的情况是,我有一个现有的quartz任务,它按计划处理记录。写在春天和冬眠和伟大的作品。新的要求,我们即将得到大量的高容量,这一过程无法处理的书面。所以除了一些其他优化之外,我还尝试对其进行多线程处理

我声明并正在使用Spring的TaskExecutor,它肯定会调用新线程,但我一运行查询,就会得到以下结果:

org.hibernate.UnknownEntityTypeException: Unable to locate persister: 119129
at org.hibernate.metamodel.internal.MetamodelImpl.locateEntityPersister(MetamodelImpl.java:647) ~[hibernate-core-5.2.16.Final.jar:5.2.16.Final]
at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2951) ~[hibernate-core-5.2.16.Final.jar:5.2.16.Final]
我对TaskExecutor的声明(该声明不为null,因此正在创建和注入):
线程本身和hibernate都非常乏味。查询本身是一个简单的会话;这是一个在主线程中被识别的类。我需要做些别的事情来初始化这个线程吗?我假设我错过了一个步骤,但我做了下面的示例所做的。

好的,结果证明这与线程或spring无关。只是一个真正的、史诗般的无益和误导性的例外。问题在于,在对多线程结构的reorg中,我将一个字符串传递给session.get()中的整数键列。就这些。我为在这么简单的事情上浪费这么多时间而感到难过,但一个半正常的错误会让我节省几个小时的时间

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"></bean>
    ProcessQueueWorkerThread worker = new ProcessQueueWorkerThread(this);
    taskExecutor.execute(worker);
    workers.add(worker);