首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridGain模板搜索

GridGain模板搜索
EN

Stack Overflow用户
提问于 2014-04-10 12:00:40
回答 1查看 68关注 0票数 1

有没有人知道是否有可能用GridGain实现存储在内存数据网格中的对象的模板搜索?让我们考虑以下几点。你有这样的课程:

代码语言:javascript
复制
class Employee{
 private Long id;
 private String name;
 private Address address;
 private Account account;
}

class Account{
 private Long id;
 private String accountNr;
}

class Address{
 private String street;
 private String postcode;
 private String city;
 private Country country;
}

然后就有了这样的搜索模板:

代码语言:javascript
复制
Address address = new Address(null, null, "New York", null);
Employee template = new Employee(null, null,address, null);
grid.read(template); 
  • 这会发现所有员工都住在纽约。是否有可能在GridGain中实现这一点?如果是的话,你能建议怎么做吗?我正在考虑使用sql联接来执行此操作,但是我需要在运行时创建这样的查询,并且在Where子句之后始终使用不同数量的参数.我解决不了这个问题。

我将感谢任何帮助/暗示。

彼得

EN

回答 1

Stack Overflow用户

发布于 2014-04-10 12:50:00

你可以使用这样的东西:

代码语言:javascript
复制
public class Address {
    @GridCacheQuerySqlField(unique = true)
    private long id;
    @GridCacheQuerySqlField
    private String street;
    @GridCacheQuerySqlField
    private String postcode;
    @GridCacheQuerySqlField
    private String city;
    @GridCacheQuerySqlField
    private Country country;
}

public class Employee {
    @GridCacheQuerySqlField(unique=true)
    private long id;

    @GridCacheQuerySqlField
    private long addressId; // Address ID.

    // Not indexed.
    private String name;
}

然后执行以下查询:

代码语言:javascript
复制
GridCacheQuery<Map.Entry<Long, Employee>> qry = cache.queries().createSqlQuery(Employee.class,
    "from Employee, Address where Employee.addressId = Address.id " +
        "and Address.name = ?");
// Query all nodes to find all cached CompanyZ employees in New York
qry.execute("CompanyZ","New York");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22987403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档