在基于java sql的遗留项目中集成apache ignite将成为一个问题
我有一个遗留java项目,其中有1000多个表和大量SQL查询 为了获得更好的查询性能,我正在研究ApacheIgnite内存数据库,我不想使用第三方持久化机制,后者基于缓存(CacheStore),我在POC中成功实现了缓存(CacheStore),不幸的是,我有很多复杂的查询和大量的连接,在这种情况下,我必须使用缓存存储名称更新查询,如示例所示在基于java sql的遗留项目中集成apache ignite将成为一个问题,sql,join,persistence,ignite,Sql,Join,Persistence,Ignite,我有一个遗留java项目,其中有1000多个表和大量SQL查询 为了获得更好的查询性能,我正在研究ApacheIgnite内存数据库,我不想使用第三方持久化机制,后者基于缓存(CacheStore),我在POC中成功实现了缓存(CacheStore),不幸的是,我有很多复杂的查询和大量的连接,在这种情况下,我必须使用缓存存储名称更新查询,如示例所示 private static void select(IgniteCache<Long, Person> personCache
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);
}
private static void select(IgniteCache personCache,字符串msg){
字符串sql=
选择p.id、concat(p.firstName、、p.lastName)、o.name、p.resume、p.salary+
“从作为p的人员开始,\”“+ORG\u缓存+”\”。组织作为o”+
“其中p.orgId=o.id”;
List在创建缓存时,可以将其sqlSchema
设置为“PUBLIC”
。如果对所有缓存都这样做,则永远不需要显式指定它们的架构(如果这就是您的问题所在).所以ORG\u CACHE是架构名称??是的。默认情况下,它与缓存名称相同。我试图单独找出如何设置架构公共,但我找不到如何使用web控制台请提供;或者详细说明如何通过代码(cacheConfiguration.setSqlSchema()
)创建缓存。创建缓存后,无法更改缓存架构。