Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpages 按键属性初始化文档数据源(而不是UNID)_Xpages - Fatal编程技术网

Xpages 按键属性初始化文档数据源(而不是UNID)

Xpages 按键属性初始化文档数据源(而不是UNID),xpages,Xpages,我们有一些文件包含一些参考文件的“密钥”。我们不使用unid是有原因的。我想用这个键值初始化数据源。所以,在DocumentID属性中,我编写脚本来打开视图,查找指定的文档并使用查找到的UNID来初始化数据源。 我认为这不是最佳解决方案 问题:是否有更好的方法基于键值初始化文档数据源 示例代码: @DbLookup("", "view", "key", 1, '[RETURNDOCUMENTUNIQUEID]'); 您应该看看Tims关于将字符串转换为MD2的文章。 这样,我认为您可以将字符串

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

问题:是否有更好的方法基于键值初始化文档数据源

示例代码:

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

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


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


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

我们经常这样做,但只需记住执行一次查找(通过$tag加载页面),而不是动态(#tag)

如果你这样做的话,它最终会进行多次查找


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

读起来非常有趣,但它需要将文档的UNID更改为explicit value=MD2(key)——这意味着我们可以存储UNID而不是key。此外:不使用UNID引用的原因是,在某些情况下(已解决的冲突、复制/粘贴),它可以更改,甚至MD2方法也可能导致数据完整性丢失。