【问题标题】:mondrian dimension cache not getting flushed蒙德里安维度缓存没有被刷新
【发布时间】:2013-07-31 18:17:20
【问题描述】:

我正在尝试通过以下代码刷新 mondrian 维度缓存 -

     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 不兼容”

【问题讨论】:

    标签: caching mondrian saiku


    【解决方案1】:

    看起来您需要执行以下操作来刷新缓存 - 像这样使用Olap wrapper class解开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(MondrianMember);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多