有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用insertRow()ADF时出现java NullPointerException

我试图将一条记录添加到数据库中的一个表中,得到Nullpointerexception

使用insertRow()执行insert语句时

用例:

我试图向其中插入记录的数据库表称为someTable

此表包含以下属性:A, B, C, D, E

主键是以下三个字段的组合:A, B, C

我正在执行以下代码以在表someTable中插入新记录:

    AppModuleImpl appModule = (AppModuleImpl)(JSFUtils.getApplicationModule("AppModuleDataControl"));

    ViewObject someTableVO =appModule.findViewObject("someTableView1");    

    Row row= someTableVO.createRow();

    row.setAttribute("A", varable1);
    row.setAttribute("B", varable2); 
    row.setAttribute("C", varable3);
    row.setAttribute("D", varable4);


    someTableVO.insertRow(row); // This statement cause the NullPointerException

    appModule.getDBTransaction().commit();

    someTableVO.executeQuery(); 

注意:

  1. 当然,除了主键之外,没有任何Not Null constrains,我正在为所有主键字段添加数据,这些字段是(ABC

  2. 正如您从上面的示例代码中可以看到的那样,我不是在为文件E插入数据。但是,即使我试图给它增加一些价值,仍然会给我同样的错误

  3. 我确信变量(variable1……variable4)不是null

  4. 我得到了正确的视图对象someTableView1

  5. 我正在使用ADF技术与Jdevelopr 11.1.2.3


共 (2) 个答案

  1. # 2 楼答案

    问题解决

    我应该在提交之前验证行,如下所示:

        AppModuleImpl appModule = (AppModuleImpl)(JSFUtils.getApplicationModule("AppModuleDataControl"));  
        ViewObject someTableVO =appModule.findViewObject("someTableView1");          
    
    
        Row row= someTableVO.createRow();  
    
        row.setAttribute("A", variable1);  
        row.setAttribute("B", variable2);  
        row.setAttribute("C", variable3);  
        row.setAttribute("D", variable4);  
    
    
    
        someTableVO.insertRow(row); 
    
        row.validate();     // This statement solved the problem
    
        appModule.getDBTransaction().commit();  
    
        someTableVO.executeQuery();