繁体   English   中英

集成 apache 在传统 java sql 项目加入问题

[英]Integrating apache ignite in legacy java sql based project joins issue

我有一个遗留的 java 项目,我有超过 1000 个表和很多 SQL 查询。

为了获得更好的查询性能,我正在研究 memory 数据库中的 apache ignite,我不想使用 3rd 方持久性机制,后者基于我在 POC 中成功实现的缓存(CacheStore),不幸的是我有有很多连接的复杂查询,在这种情况下,我必须使用缓存存储名称更新我的查询,如示例中所示

    private static void select(IgniteCache<Long, Person> personCache, String msg) {
        String sql =
            "select p.id, concat(p.firstName, ' ', p.lastName), o.name, p.resume, p.salary " +
            "from Person as p, \"" + ORG_CACHE + "\".Organization as o " +
            "where p.orgId = o.id";

        List<List<?>> res = personCache.query(new SqlFieldsQuery(sql).setDistributedJoins(true)).getAll();

        print(msg);

        for (Object next : res)
            System.out.println(">>>     " + next);
    }

我真的希望避免这种情况,并使用原生 SQL。

是否有任何其他可能的解决方案来使用 3rd 方持久性和缓存来实现连接

谢谢

创建缓存时,可以将其sqlSchema设置为"PUBLIC" 如果您对所有缓存都这样做,您将永远不需要明确指定它们的模式(如果这是您的问题的话)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM