0

我们有一些文件包含一些参考文件的“关键”。我们不使用UNID是有原因的。我想通过这个键值来初始化数据源。所以在 Document ID 属性中我编写脚本来打开视图,查找指定的文档并使用查找的 UNID 来初始化数据源。我认为这不是最佳解决方案。

问题:有没有更好的方法来根据键值初始化文档数据源?

示例代码:

@DbLookup("", "view", "key", 1, '[RETURNDOCUMENTUNIQUEID]');
4

3 回答 3

1

在视图中通过键查找文档的 UNID 可能确实是最好的方法。但是,您可以通过编写托管 bean 作为缓存来加快重复调用的速度。例如,如果您编写了一个实现 java.util.Map 的 Java 类,将大部分方法存根,并实现一个将键作为参数的 .get(...) 方法,您可以像 (假设您将 bean 称为“DocKeyManager”):

<xp:dominoDocument ... documentId="${DocKeyManager[someKey]}"/>

这样,您可以缓存来自 .get(...) 调用的值,而不必每次都访问数据库,并且还可以让您稍后更改查找算法。

于 2012-09-28T22:19:00.527 回答
0

您应该查看有关将字符串转换为 MD2 的 Tims 文章。这样,我认为您可以将字符串 id 转换为 unid 并使用 getDocumentByUnid 访问它们

http://xmage.gbs.com/blog.nsf/SearchResults?OpenNavigator&Query=md2

于 2012-09-28T12:28:38.360 回答
0

我们经常这样做,但只记得做一次查找(在页面加载时通过 $ 标签)而不是动态(# 标签)。

如果你这样做是动态的,它最终会进行多次查找。. .

Jesse Gallagher 提出的缓存查找结果的建议也是一个好主意。

于 2012-09-30T07:50:42.710 回答