2017-10-15 11 views
1

Ignite v2.1 및 dbeaver를 사용하여 캐시를 쿼리합니다. 캐시에있는 객체 내의 콜렉션 또는 캐시에있는 객체 내의 복잡한 객체를 쿼리 할 수 ​​있습니까? 그리고 그렇다면 구문은 무엇입니까?개체 내의 컬렉션에 대한 Ignite SQL 도구 쿼리

예를 들어, IgniteCache 및 Person과 같은 캐시가있는 경우 다음과 같은 구문이 무엇입니까 1) 주소를 선택하고 형제 이름 & 주소를 선택 하시겠습니까?

class Person { 
    String name; 
    Addresss address; 
    Collection<Person> siblings; 
} 

답변

0

당신은 당신은 SQL 쿼리에 해당 필드를 사용할 수 있습니다,이 캐시에 필드와 인덱스의 목록이 캐시 QueryEntity를 선언해야합니다. 주석 기반 설정은 동일한 문서에서 설명되며, 사용자에게 더 적합한 것을 선택하십시오.

그러면 1)은 아마도 SELECT ADDRESS FROM PERSONCACHE.PERSON WHERE NAME = ?과 같을 것입니다.

외래 키는 지원되지 않지만 나는 siblings 설정이 작동하지 않을 것이라고 생각합니다. 조인 테이블을 추가하지 않으면 관계형 데이터베이스의 경우처럼 작동하지 않습니다. Ignite는 그래프 데이터베이스가 아닙니다.

1

Ignite에서 중첩 된 컬렉션을 통해 SQL을 수행 할 수 없습니다. SQL 표준은 그런 것을 지원하지 않습니다. SQL 테이블은 평면입니다. 당신이 Person.idPerson.parentId (일대에 대한) 도입이 필요하거나 별도의 매핑 테이블 (다수 대 다수의 경우), 다음 형제를 조회하는 SQL JOIN를 사용

은 일반 SQL 데이터베이스를 생각하십시오.