我正在尝试通过 Java 获取 Lotus-Domino nsf 数据库中的行。我确实成功地获取了列名称和列计数,因为它们与我的 ibm Notes 客户端上显示的相同。但是,每当我通过 view.getAllEntries()
获取 ViewEntryCollection
时,它似乎都是空的。
我尝试了几种不同的选择,包括反射。
for (Object object : database.getViews()) {
View view = (View) object;
if (view.getName().equals("For Printing\\By Date")) {
// this prints out "view.getEntryCount() = 1145"
System.out.println("view.getEntryCount() = " + view.getEntryCount());
// this prints out "view.getAllEntries().getFirstEntry() = null"
System.out.println("view.getAllEntries().getFirstEntry() = " +
view.getAllEntries().getFirstEntry());
break;
}
}
我希望定义第一个条目,因为它说它的条目计数是 1145
,但实际上是 null
。这是权限问题吗?
最佳答案
是的,这可能是一个权限问题,而且很可能是这样。 getEntryCount 不会检查您对基础条目的访问。它只是返回索引器计数的条目数。
但是,如果代码运行的身份(您的用户 ID,或代码签名者,如果是代理)不具有 View 中任何文档的读取权限(由于在文档中使用了 ReaderName 字段,最有可能)那么 getFirstEntry() 将返回 null。您需要确保代码以具有适当访问级别的用户身份运行。
关于java - 无法通过Java从数据库检索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57044557/