[英]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.