在使用@Transaction声明的方法中,我启动一个调用服务中其他方法的线程,该方法也使用@Transaction声明。
@Transactional
protected void processJob(final MobileTokenDeliverJob job) {
if (job.getState() == MobileTokenDeliverJob.STATE_PROCESSING) {
throw new IllegalStateException("任务正在执行,请在任务出错或停止后再试.");
}
Thread workThread = new Thread() {
@Override
public void run() {
//call others' method
}
};
workThread.start();
}
然后我得到了异常
"org.hibernate.NonUniqueObjectException"