2

コンボボックスを使用してテーブルの内容を表示しようとしていました。以下のコードを書きましたが、テーブルには何も表示されません。

Integer i = ((Destination) (jComboBox1.getSelectedItem())).getId();
query1 = entityManager.createQuery("SELECT d FROM Dayactivity d WHERE d.id=:Id");
query1.setParameter("Id", i);
java.util.Collection data = query1.getResultList();
list2.clear();
list2.addAll(data);

以下のようにコードを変更すると、データが正しく返され、テーブルに表示されました。

Integer i = ((Destination) (jComboBox1.getSelectedItem())).getId();
query1 = entityManager.createQuery("SELECT d FROM Dayactivity d WHERE d.id=:Id");
query1.setParameter("Id", 2);
java.util.Collection data = query1.getResultList();
list2.clear();
list2.addAll(data);

最初のコード (i) では機能しないのに、2 番目のコードでは 2 で機能するのはなぜですか?

誰かがこれを解決するのを手伝ってくれますか?私はJavaとNetBeansが初めてです

4

2 に答える 2

0

次のいずれかを実行します。

  • コードをデバッグして、iの実際の値を確認します。

iがnullの場合、コンボボックスの選択したIDへのアクセス方法を次のように変更する必要があります。

Integer i = ((Destination) jComboBox1.getSelectedIndex();
  • 彼のメソッドの引数を確認する必要があります。

    1. query1.setParameter(String、int); また
    2. query1.setParameter(String、Integer);
于 2012-07-13T07:46:50.627 に答える
0

iの初期化方法を次のように変更します。

int i = jComboBox1.getSelectedIndex();

于 2012-07-13T07:43:01.237 に答える