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( "[時刻].[2013].[2013 年 7 月]").getSegmentList()); OlapWrapper ラッパー = (OlapWrapper)m; mondrian.olap.Member MondrianMember = wrapper.unwrap(mondrian.olap.Member.class);

そして今、フラッシュメソッドを呼び出します -

cacheControl.flush(MondrianMember);

于 2013-08-05T10:34:36.853 に答える