我有一个远程EJB3方法,它使用JTA(Hibernate)从数据库返回List<T>
。
基本上它只是一个简单的HQL,看起来像这样:select t from T t where ...
。
在某些情况下,此查询需要很长时间,因此我希望使用SwingWorker使用publish
和process
方法将数据块异步加载到JTable中。
但是,为了实现这一点,我还需要从服务器获取数据块。对不对?
我可以通过设置一些任意范围来人为地将查询划分为多个“较小”的查询:
select t from T t where ... and t.id < :rangeSrart and t.id > :rangeEnd
但是我希望有更好的方法来做到这一点
我看了@Asynchronous
,但它似乎不是我想要的
有没有办法用EJB或其他任何方法做到这一点?
答案 0 :(得分:0)
您既不需要publish
也不需要process
。只需获取doInBackground()
实施中的列表即可。在execute
()开始之前,在对话框中显示未确定的进度条。您还应覆盖done()
以显示结果并隐藏进度对话框。