我想通过调用存储过程在ejb方法中执行异步事务操作.当我调用methot时,出现以下错误:
java.lang.IllegalStateException: A JTA EntityManager cannot use getTransaction()
豆角,扁豆
@Stateless
public class FileSearchDAO {
private static Logger logger = LoggerFactory.getLogger(FileSearchDAO.class);
@PersistenceContext(unitName = "FileSearchPU")
private EntityManager entityManager;
@Asynchronous
public Future saveFile(String fileNo, List runningFiles) {
try {
entityManager.getTransaction().begin();
entityManager.createNativeQuery(
" BEGIN prc_save_file (:fileNo); END;")
.setParameter("fileNo", fileNo).executeUpdate();
entityManager.getTransaction().commit();
runningFiles.remove(fileNo);
return new AsyncResult<>(fileNo);
} catch (Exception ex) {
ex.printStackTrace();
return new AsyncResult<>(ex.getMessage());
}
}
persistence.xml
org.hibernate.jpa.HibernatePersistenceProvider
jdbc/FileSearchDS
value="${hibernate.transaction.jta.platform}"/>
我没有任何实体类.我只想调用存储过程来更新某些表.