私はEJB 3技術に基づいてSwingデータベースアプリケーションを作っています。私はNetbeans 7.0.1を使用しています。プログラムは、データベースからすべてのデータをフェッチしています起動した場合:データベースからすべてのデータをフェッチEJB 3&Swing:GUIの応答性を向上させる方法
private javax.persistence.Query spareQuery;
private java.util.List<Spares> spareList;
...
spareQuery = entityManager.createQuery("SELECT s FROM Spares s ORDER BY s.id");
spareList = org.jdesktop.observablecollections.ObservableCollections.
observableList(spareQuery.getResultList());
は、起動プロセスで重要なの一時停止になります。
初期化::
spareQuery = entityManager.createQuery("SELECT s FROM Spares s ORDER BY s.id"); spareQuery = new MyQueryWrapper (spareQuery);
主要部分 は今のところ、私は、次の操作を行います
javax.persistence.Query
インターフェースのラッパーを必要とします!これが呼び出されたときにその後:リストが観測されるようspareList = org.jdesktop.observablecollections.ObservableCollections. observableList(spareQuery.getResultList());
代わりに、すべてのデータをサーバから受信し、Query
インスタンスはチャンクにクエリを分割する必要があり、すべてのチャンクを取得した後に待っているが、(リストにデータを追加しますデータのすべての部分が関連付けられたJTable
に表示されます)。結果として、我々はソフトで迅速な立ち上げを行うでしょう。
これにより、作業のロジックは次のようにする必要があります:
SELECT s FROM Spares s ORDER BY s.id WHERE s.id BETWEEN 1 and 20
- は、リストにデータを追加します。
- ...
SELECT s FROM Spares s ORDER BY s.id WHERE s.id BETWEEN 80 and 100
- は、リストにデータを追加します。
QUESTION:EJB3技術を使用して、データベースからのフェッチソフト非同期データを達成するために(ラップ)EntityManager
、Query
または何か他のものに置き換えることができます任意のライブラリはありますか?
私は 'SwingWorker'について知っていますが、これは現在私のリストの中で第1の解決策です。 しかし私の質問は、この記事で説明されている方法で物事を進める図書館があるかどうかです。 – Exterminator13