使用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();
注意:
当然,除了主键之外,没有任何
Not Null constrains
,我正在为所有主键字段添加数据,这些字段是(A
、B
和C
)正如您从上面的示例代码中可以看到的那样,我不是在为文件
E
插入数据。但是,即使我试图给它增加一些价值,仍然会给我同样的错误我确信变量(
variable1
……variable4
)不是null
我得到了正确的视图对象
someTableView1
我正在使用
ADF
技术与Jdevelopr 11.1.2.3
# 1 楼答案
该位置出现NullPointerException有两种可能的原因:
someTableVO.insertRow(row)
还是在其内部抛出的。源代码在堆栈跟踪中的位置是什么李>调试它并告诉我们什么是空的
# 2 楼答案
问题解决
我应该在提交之前验证行,如下所示: