3
스칼라 래퍼 Datomisca을 사용하여 2 개의 규칙을 호출하는 Datomic 쿼리를 작성하려고합니다.Datomisca의 쿼리 규칙 조합
어떻게 두 개의 개별 쿼리를 결합합니까?
내 코드는 다음과 같습니다
val rule1 = Query.rules("[[(rule1 ?a) [ ... ]]]")
val rule2 = Query.rules("[[(rule2 ?b) [ ... ]]]")
Datomic.q(Query("""[:find ?x
:in $ % %
:where (rule1 ?a) (rule2 ?b)]"""), conn.db(), rule1, rule2)
이) "rule1
키 확인할 수 없습니다"에 대해 나에게 오류를 제공합니다. 단 하나의 %
으로 시도했지만 컴파일되지 않습니다 (형식 불일치).
Query.rules
에 대한 호출에서 단일 문자열로 조합하지 말아야합니다. 다른 규칙 조합 (예 : 두 검색어가 각각 하나씩, 다른 검색어가 하나만있는 규칙)을 사용하기 위해 반복해야한다는 뜻이기 때문입니다.
매크로가 Query.rules
이므로 리터럴 문자열 값을 사용해야합니다. 그렇지 않으면 컴파일되지 않습니다.