Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 此代码无法检查NoResultException_Java_Mysql_Jpa_Netbeans - Fatal编程技术网

Java 此代码无法检查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

这是我的密码。它不应该获取并进入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);
    }
}
下面是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,而不仅仅是异常。就目前而言,该异常不是由任何东西引发的。好吧,我会尝试,而且它通常是有效的。。