2016-01-22 78 views
1

我想知道是否有办法不等待JPA查询结果在ejb 我必须调用一个存储过程白皮书JPA在Oracle上进行一些大规模复杂的处理数据库, 我发现javax.ejb.Asynchronous但我不希望创建一个THEAD,只需调用而忘记了sotred程序不等待JPA查询结果在EJB中的一种方法

Thnaks

+0

* “但我不希望创建一个THEAD为” *到底为什么?你为什么在脚下射击自己? – BalusC

+0

由于超时,我不希望我的线程等待PS(8小时),直到它完成 –

+0

搜索关于Quartz Scheduler,也许是一个很好的选择:) –

回答

0

是JPA通常是基于JDBC API是同步的,所以你不能实现你想要的而不需要创建一个辅助线程来等待JDBC返回。一种替代方法是在Oracle中创建一个辅助存储过程,它只是计划主存储过程的执行并立即返回。然后你会从Java调用助手存储过程。

排序:

create or replace procedure schedule_myjob is 
begin 
    -- search documentation for 
    dbms_job.submit('myjob', ....); 
    -- NOTE: dbms_job.submit will not have effect until you commit 
    -- your transaction. 
end schedule_myjob; 

create or replace procedure myjob is 
begin 
    -- Your main procedure code 
    ... 
end myjob; 
+0

谢谢你的建议,我会尝试它 –