当前位置: 首页 > 知识库问答 >
问题:

自定义对象中的Hazelcast查询

堵飞鸿
2023-03-14

我正在应用程序中使用Hazelcast作为共享映射。我的地图是这样的:

Map<String, MyObject>
class MyObject implements Serializeble {
    // Map FieldName -> FieldValue
    Map<String, Object> myMap;
}
Object getField(String fieldName) {
    return myMap[fieldName];
}
/hazelcast/src/main/java/com/hazelcast/query/impl/ReflectionHelper.java

第144行:

if (localGetter == null) {
    localGetter = new CustomFieldGetter(name, obj);
}

这里是我的CustomFieldGetter类:

static class CustomFieldGetter extends Getter {
    final Object value;
    final Class type;
    final String fieldName;

    CustomFieldGetter(String fieldName, Object obj) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        super(null);
        this.fieldName = fieldName;
        this.value = obj.getClass().getMethod("getField", String.class).invoke(obj, fieldName);
        this.type = value.getClass();
    }

    @Override
    Object getValue(Object obj) throws Exception {
        return value;
    }

    @Override
    Class getReturnType() {
        return type;
    }

    @Override
    boolean isCacheable() {
        return false;
    }

    @Override
    public String toString() {
        return "FieldGetter [parent=" + parent + ", field=" + fieldName + "]";
    }
}

很酷,在重新编译Hazelcast之后,使用这个新的jar,我可以使用普通SQL访问查询。但对于pagingQueries,我有一些错误。

共有1个答案

裴存
2023-03-14

一种选择是实现可移植接口。然后您可以将每个条目作为一个单独的字段编写。这假设输入值也实现了可移植接口。

看看如何使用便携的示例代码。

 类似资料:
  • 问题内容: 说我的课很简单 我希望将此类s 的集合存储在People类的属性中,该属性是类型为Person的数组 也许我做到这一点如下 问题:请问我如何检查people.list是否包含实例alex? 我很想尝试的简单尝试 称一个错误 问题答案: 有两个功能: 编译器在抱怨是因为编译器知道不是,因此需要一个谓词,但不是谓词。 如果阵列中的人员是(不是),则可以使用: 由于它们不相等,因此可以将第二

  • 对于我的暑期实习项目,我正在尝试在多个节点上分配作业。但是,我想根据谓词(cpu使用情况)以编程方式创建自定义集群组,就像在Apache Ignite中一样。我的公司已经使用Hazelcast IMDG。Hazelcast是否提供类似的功能?我知道我可以根据组名称创建不同的Hazelcast实例,但有没有办法使用cpu指标在Hazelcast中创建自定义集群组?

  • 本文向大家介绍Django中自定义查询对象的具体使用,包括了Django中自定义查询对象的具体使用的使用技巧和注意事项,需要的朋友参考一下 自定义查询对象 - objects ①声明一个类EntryManager,继承自models.Manager,并添加自定义函数 ②使用创建的自定义类EntryManager 覆盖Models中的objects 以上就是本文的全部内容,希望对大家的学习有所帮助,

  • 我正在努力找出如何使用Java流从对象值等于x的自定义对象列表中收集自定义对象。 这没有编译,但我不认为我离得很远--有人能指出我在哪里出错吗?

  • 问题内容: 我正在使用JSON.NET序列化一些对象,并且我想知道是否有一种简单的方法可以仅针对特定对象覆盖默认json.net转换器? 目前我有以下课程: JSON.NET当前将上述序列化为: 是否可以仅通过特定方式将其格式化为: 我对JSON.NET有点陌生。我想知道上面是否与编写自定义转换器有关。我找不到任何有关如何编写示例的具体示例。如果有人可以指出我的具体信息,我将不胜感激。 我需要找到