Java 此代码无法检查NoResultException
这是我的密码。它不应该获取并进入NoResultException,但它并不像预期的那样。有一个未使用的数据。我试着打印出来,下面是输出:[]Java 此代码无法检查NoResultException,java,mysql,jpa,netbeans,Java,Mysql,Jpa,Netbeans,这是我的密码。它不应该获取并进入NoResultException,但它并不像预期的那样。有一个未使用的数据。我试着打印出来,下面是输出:[] private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) { try { int row = tableDataRangka.getSelectedRow(); String idRangka = tab
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);
}
}
下面是GetRelasibyDrangka方法的代码:
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;
}
@NamedQuery(name = "RelasiRumahKayuRangka.findByIdRangka", query = "SELECT r FROM RelasiRumahKayuRangka r WHERE r.relasiRumahKayuRangkaPK.idRangka = :idRangka"),
你们知道解决方案吗,这样代码就可以被NoResultException捕获?在代码中。如果结果集为空,则列表也将为空。 利用这种情况并抛出所需的异常 在getRelasiByIdRangkaString idRangka中添加以下更改
public List<RelasiRumahKayuRangka>
getRelasiByIdRangka( String idRangka ) throws Exception {
initEntityManager();
// rest of the code here
// ...
// check if some results are found or not
if( rrDrs.isEmpty() ) { // or ( rrDrs.size() == 0 )
throw new NoResultException( "No results found" );
} // if empty
// this should be a filled in list
return rrDrs;
} // end of method
代码relasiRumahkayuRangkaDAO.getRelasiByIdRangkaidRangka应该被noResultException捕获。我用数据库中不包含的数据填充了idRangka。请尝试从某个地方抛出noResultException,而不仅仅是异常。就目前而言,该异常不是由任何东西引发的。好吧,我会尝试,而且它通常是有效的。。