2017-01-01 42 views
0

我正在开发一个mater-detail页面,我可以在详细信息表(AstAssetReturnsVO)中插入一个新行并将其引用键设置为主表的ID(AstAssetsVO) 。代码在我进入JSFF调用之前作为方法调用活动的一部分运行。在adf中使用getCurrentRow时发生java.lang.NullPointerException

由于某种原因,我得到NullPointerException,当它到达下面的标记行,我不知道为什么getCurrentRow返回一个空指针。我检查了文档here,它应该返回与数据控件的当前行对应的迭代器的当前行。

请让我知道我可能做错了什么。

此致

public void assetReturnInitialization(){ 
    getAstAssetReturnsVO().clearCache(); 
    getAstAssetReturnsVO().executeEmptyRowSet(); 
    Row row = getAstAssetReturnsVO().createRow(); 

    row.setAttribute("Stat", 99); 
    row.setAttribute("AsrtDate", "1396/12/31"); 

    getAstAssetsVO().executeQuery(); 
    Row assetRow = getAstAssetsVO().getCurrentRow(); <<<<<<< ERROR OCCURS HERE 
    row.setAttribute("AsetId", assetRow.getAttribute("Id")); 

    getAstAssetsVO().getCurrentRow().setAttribute("Status", "Returned".toUpperCase()); 
    getAstAssetReturnsVO().insertRow(row); 
    getAstAssetReturnsVO().setCurrentRow(row); 

    return ; 
} 
+0

检查getAstAssetsVO()是否在那里返回null。 –

+0

已检查...不是这种情况。 –

回答

0
getAstAssetsVO().executeQuery(); 
Row assetRow = getAstAssetsVO().getCurrentRow(); <<<<<<< ERROR OCCURS HERE 

此答案是特定于上述的两行代码。我没有审查你的用例和其他代码。

在vo.executeQuery()API之后,行迭代器会指向第一行上面的一个。所以,你有两个选择。使用vo.hasNext()来检查是否有下一行并循环遍历记录,或者只需要第一行,然后使用vo.first()来获取它。以下是后面案例的示例代码。

getAstAssetsVO().executeQuery(); 
Row assetRow = getAstAssetsVO().first(); 
if (assetRow != null) { 
    //your logic 
} 
+0

谢谢我会检查它,并尽快提供反馈意见。 –

相关问题