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?

有人可以帮我解决这个问题吗,我是 Java 和 NetBeans 的新手

4

2 回答 2

0

将初始化方式更改i为:

int i = jComboBox1.getSelectedIndex();

于 2012-07-13T07:43:01.237 回答
0

执行以下操作之一:

  • 调试代码以查看 i 的实际值:

如果 i 为空,那么您需要更改访问组合框的选定 ID 的方式,如下所示:

Integer i = ((Destination) jComboBox1.getSelectedIndex();
  • 您需要检查他的方法的参数:

    1. query1.setParameter(String, int); 或者
    2. query1.setParameter(String, Integer);
于 2012-07-13T07:46:50.627 回答