提问者:小点点

Ignite通过rest api将一个POJO bean值放入缓存


我想使用REST API将POJO bean键值对放到Ignite缓存中。我可以将字符串键值对放入缓存。但是这里我想把一个类作为键值。我如何能为此创建Rest网址?我的配置文件如下所示

<property name="cacheConfiguration">
        <bean class="org.apache.ignite.configuration.CacheConfiguration">
            <!-- Set a cache name. -->
            <property name="name" value="cacheName"/>

            <!-- Set cache mode. -->
                    <property name="cacheMode" value="PARTITIONED"/>
        <property name="indexedTypes">
        <list>
        <value>com.test.EntitlementKey</value>
        <value>com.test.Entitlement</value>
        </list>
        </property>
        </bean>
    </property>

实体类看起来像这样

import org.apache.ignite.cache.query.annotations.QuerySqlField;
public class Entitlement {

    @QuerySqlField

    private String name;

    @QuerySqlField

    private String desc;
public String getname() {
    return name;
}
public void setname(String name) {
    this.name = name;
}
public String getdesc() {
    return desc;
}
public void setdesc(String desc) {
    this.desc = desc;
}

和权利密钥类

public class EntitlementKey {
    @QuerySqlField(index = true)
    private String eid;

    @QuerySqlField
    private String id;
public String getEid() {
        return eid;
    }

    public void setEid(String eid) {
        this.eid = eid;
    }
    public String getid() {
        return id;
    }

    public void setid(String id) {

        this.id = id;
    }

共1个答案

匿名用户

目前,在master中,您可以找到票证的实现,它允许使用内部java类型作为键和值。

此时,如果您想使用您的自定义类型,您需要使用连接器消息拦截器接口。一旦您实现并配置了它,您将开始接收来回传递的所有键和值的回调。因此,您可以以某种方式将对象编码为String,然后将其转换为拦截器中的真实对象。相反:在从缓存中返回对象之前,您可以将其转换为某种String形式。