Servlets Domino方法ViewNavigator createViewNavFromCategory(String categoryName)在与许多子类别一起使用时返回不带条目的导航器

Servlets Domino方法ViewNavigator createViewNavFromCategory(String categoryName)在与许多子类别一起使用时返回不带条目的导航器,servlets,xpages,lotus-domino,Servlets,Xpages,Lotus Domino,我有一个Javaservlet,它作为REST服务工作。我的数据通过一个包含3个分类列的分类视图传递 我使用view.createViewNavFromCategory(“2014\43”)创建了一个视图导航器,其中指定的类别与前两个分类列保持一致 2014=年,43=周数,这意味着最多可以有53个第二列类别 我的分类列按下位排序。出于某种奇怪的原因,我发现所有列都必须以相同的方式排序(未记录) 我的代码: String viewCategory = ""; if

我有一个Javaservlet,它作为REST服务工作。我的数据通过一个包含3个分类列的分类视图传递

我使用view.createViewNavFromCategory(“2014\43”)创建了一个视图导航器,其中指定的类别与前两个分类列保持一致

2014=年,43=周数,这意味着最多可以有53个第二列类别

我的分类列按下位排序。出于某种奇怪的原因,我发现所有列都必须以相同的方式排序(未记录)

我的代码:

        String viewCategory = "";
        if (isYearSpecified) viewCategory = <year parameter>;
        if (isWeekSpecified) viewCategory = viewCategory + "\\" + <week parameter>;
        ViewNavigator nav = lookupView.createViewNavFromCategory(viewCategory);

        //and set the size of the preloading cache: 
        nav.setBufferMaxEntries(numCacheEntries); 

        // Initialize list of JSON income objects
        List prognosisJSON = new ArrayList();

        //and then traverse the view: 
        ViewEntry currEntry = nav.getFirst(); 
String viewCategory=“”;
如果(指定isyears)视图类别=;
如果(isWeekSpecified)viewCategory=viewCategory+“\\”+;
ViewNavigator nav=lookupView.createViewNavFromCategory(viewCategory);
//并设置预加载缓存的大小:
资产净值setBufferMaxEntries(Numcachentries);
//初始化JSON收入对象的列表
List prognosisJSON=new ArrayList();
//然后遍历视图:
ViewEntry currEntry=nav.getFirst();
在我指定一周低于13之前,这是一个魅力。如果使用类别“2014\12”、“2014\11”并降低级别,则当尝试访问导航器中的第一个条目时,视图条目将返回null

我也许应该补充一点,我的视图在失败的文档之前包含2102个类别的文档(如果存在未记录的最大限制)


我能做些什么来防止这种情况发生?

我怀疑您遇到了这个问题。它在LotusScript中工作的事实以及您正在寻找的密钥听起来很可疑。要完全确认它,它还应该在Java代理中失败。 我最新的消息是,这是为9.0.2计划的。
如果是这样,同时,将列改为文本而不是数字将解决问题。

这是什么版本的多米诺骨牌?嗨,Richard。我使用的是Domino9.0.1FP3。8.5.3版本中有一个wiki文档,它描述了NotesViewNavigator中的一些缓存功能。不幸的是,这个链接现在似乎不能正常工作。从链接到它的页面中,我可以找到一个属性NotesViewNavigator.BufferMaxEntries。也许玩这个值会对你有所帮助。我已经试过BufferMaxEntries了。我将它设置为400,并尝试将其加倍,以检查是否有任何区别。不幸的是,它没有…我只是测试了使用Lotusscript访问samt视图类别。没问题……问题是我已经在使用text、@text(@Year(Date))和@text(WeekNr)。但是(我可以看到这里有一个But),因为@Text-ify周数列将打破排序,所以我插入了一个隐藏的排序列(仅限WeekNr)。今晚,我将废弃此列,并在第1周到第9周插入一个前导“0”。这将解决排序问题。而且,正如我在前面的评论中所说,“我的Lotusscript代理能够创建一个导航器,其中包含java失败的内容……不幸的是,我在博客中发现并提到的问题是核心java API的问题,它早于XPages。