【发布时间】:2014-01-17 02:55:34
【问题描述】:
这是我制作的代码。它不应该得到并进入 NoResultException,但它并不像预期的那样。有未使用的数据。我尝试打印出来,这是输出:“[]”
private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {
try {
int row = tableDataRangka.getSelectedRow();
String idRangka = tableDataRangka.getValueAt(row, 0).toString();
System.out.println( relasiRumahkayuRangkaDAO.getRelasiByIdRangka(idRangka).toString() );
} catch (NoResultException nre) {
// Doing something..
} catch (Exception ex) {
Logger.getLogger(MasterDataProjectUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
这里是“getRelasiByIdRangka”方法的代码:
public List<RelasiRumahKayuRangka> getRelasiByIdRangka(String idRangka) throws Exception{
initEntityManager();
List<RelasiRumahKayuRangka> rrDrs = new ArrayList<>();
Query q = em.createNamedQuery("RelasiRumahKayuRangka.findByIdRangka");
q.setParameter("idRangka", idRangka);
rrDrs.addAll(q.getResultList());
closeEntityManager();
return rrDrs;
}
而这个是 JPA 查询,findByIdRangka:
@NamedQuery(name = "RelasiRumahKayuRangka.findByIdRangka", query = "SELECT r FROM RelasiRumahKayuRangka r WHERE r.relasiRumahKayuRangkaPK.idRangka = :idRangka"),
你们知道解决办法,所以代码可以被 NoResultException 捕获吗?
【问题讨论】:
-
代码“relasiRumahkayuRangkaDAO.getRelasiByIdRangka(idRangka)”应该被 noResultException 捕获。我已经用数据库中不包含的数据填充了 idRangka。
-
尝试从某个地方抛出
noResultException,而不仅仅是Exception。就目前而言,该异常不会被任何东西抛出。 -
好的,我会试试的,除了它通常有效..