2009-06-10 6 views
1

Ok。私が望んだのは: Hibernateでは、MyEntityオブジェクトのリストを一旦ロードし、そのリストをjtableのモデルの内部データとして持つことができました。私もjTextFieldを持っていて、キーが入力されたとき、私は引数としてjtextfieldのテキストをとり、MyEntityの内部リストをフィルターに掛けてテーブルモデル変更イベントを発生させるモデルのメソッドを呼び出します。私は毎回データベースにぶつかることなくフィルタリングをしたい。Hibernateで永続的でないコレクションのメモリフィルタリングで

私がしたこと: モデル内に2つのリストがありました:createListener(...)。list()で初めてロードされたinitialListという名前のリストとfilteredListという名前の2番目のリスト。このようにフィルタリングされたリストを使用して、行、列の値をjtableに渡しました。 Hibernateは、フィルタAPIのものは永続的なコレクションでしか使用できないと言っているので、うまくいきませんでした。私は子供のコレクションとしてMyEntity行のすべてが含まれていると、この親ダミーエンティティをロードします(データベースにダミーの親テーブルと一緒に)ダミーの親エンティティを作成した場合

  1. Essentialy:だから私は、次の3つの質問を持っています、これは動作しますか?はいの場合、これを行うには愚かな音がします。ただ、休止状態をコレクションを永続的なものとみなし、フィルターのものを使用させてください。私は何が欠けていますか?
  2. 永続的なコレクションがあり、フィルタAPIを使用しているとします。これにより、最初の読み込み以外でデータベースにアクセスすることはありませんか?私はユーザーがキーを押すたびにフィルターをかける必要があるので、更新は気にせず、一度読み込んだ後にすばやくフィルターをかけます。
  3. この機能を使用する他の方法はありますか。私は、手動でJava Collections APIを使用してフィルタインデックスや要素をソートすることはできますが、その他の準備ができていると思いますか?

ありがとうございます。あなたはまた、クエリに応じて、

を必要とするよう

答えて

1

わからない程度#1が、それはうまくいくかもしれない...

私が多分見勧め

コモンズ・コレクション(CollectionsUtils)、メモリにフィルタリングを行います2番目のレベルのキャッシュは、正しく構成されていれば実際にデータベースへのアクセスを妨げる可能性があります。

関連する問題