1

我正在尝试通过以下代码刷新蒙德里安维度缓存-

     org.olap4j.metadata.Schema OlapSchema = olapConnection.getOlapSchema();
     NamedList<org.olap4j.metadata.Cube> cubeList =  OlapSchema.getCubes();
     org.olap4j.metadata.Member m = null;
     for(org.olap4j.metadata.Cube cube: cubeList) {
    m = cube.lookupMember(IdentifierNode.parseIdentifier( "[Time].[2013].[Jul2013]").getSegmentList());
       final CacheControl cacheControl = olapConnection.getCacheControl(null);
       CacheControl.MemberSet regionTime = cacheControl.createMemberSet(mondrian.olap.Member)m, false);
       cacheControl.flush(regionTime);

     }

但此代码引发运行时错误“MondrianOlap4jMember 和 mondrian.olap.member 不兼容”

4

1 回答 1

0

看起来您需要执行以下操作来刷新缓存 - 使用Olap 包装器类解开 lookupMember 函数返回的成员对象,如下所示 -

m = cube.lookupMember(IdentifierNode.parseIdentifier("[Time].[2013].[Jul2013]").getSegmentList()); OlapWrapper 包装器 = (OlapWrapper)m; mondrian.olap.Member MondrianMember = wrapper.unwrap(mondrian.olap.Member.class);

现在调用flush方法-

cacheControl.flush(蒙德里安成员);

于 2013-08-05T10:34:36.853 回答