2013-01-01 1 views
-1

Clojure에 게시 Google 지원 그룹이 나를 위해 작동하지 않는 것 같습니다. 그래서 여기에서 질문하려고 시도합니다.Java의 Datomic 메모리 내 쿼리는 결과를 반환하지 않습니다.

다음과 같이 약간 수정 된 GettingStarted.java (clojure distro에서)를 스프링 구성 테스트로 실행하여 Datomic을 내 앱에 통합하고 아래의 첫 번째 Peer.q 호출에서 결과가 나타나지 않는지 확인하십시오. (동일한 콘솔 호출이 150 개의 레코드를 반환하는 반면). 나는 여기서 무엇을 잘못하고있는거야, 제발 도와 줘?

@ContextConfiguration(classes={GettingStartedConfig.class}, loader=AnnotationConfigContextLoader.class) 
@RunWith(SpringJUnit4ClassRunner.class) 
public class GettingStartedTest { 



    private final Logger log = LoggerFactory.getLogger(getClass()); 
    private static final Scanner scanner = new Scanner(System.in); 

    private String uri = "datomic:mem://seattle"; 

    @Autowired 
    private Reader schema; 

    @Autowired 
    private Reader seed0; 

    private void pause() { 
     if (System.getProperty("NOPAUSE") == null) { 
      log.info("\nPress enter to continue..."); 
      scanner.nextLine(); 
     } 
    } 


    @SuppressWarnings("rawtypes") 
    @Test 
    public void test() throws Exception { 


     log.info("Creating and connecting to database...at {}", uri +"\n\n"); 


     Peer.createDatabase(uri); 
     Connection conn = Peer.connect(uri); 

     pause(); 


     log.info("Parsing schema dtm file and running transaction...\n\n"); 


     log.info("schema: "+schema); 

     List schema_tx = (List) Util.readAll(schema).get(0); 
     schema.close(); 
     Object txResult = conn.transact(schema_tx).get(); 
     log.info("result of schema transaction: "+txResult); 

     pause(); 

     log.info("Parsing seed data dtm file and running transaction...\n\n"); 

     List data_tx = (List) Util.readAll(seed0).get(0); 
     seed0.close(); 
     txResult = conn.transact(data_tx).get(); 

     pause(); 

     log.info("Finding all communities, counting results...\n\n"); 

     Collection results = Peer.q("[:find ?c :where [?c :community/name]]", conn.db()); 
     log.info("size of the result = {} " , results.size() + "\n\n"); 

     pause(); 

[주] INFO를 ................................................ COM .excelsiorsoft.daedalus.persistence.datomic.GettingStartedTest - 커뮤니티 모두, 계산 결과를 찾기 ...

[주] INFO com.excelsiorsoft.daedalus.persistence.datomic.GettingStartedTest - 결과 = 0

의 크기

미리 감사드립니다.

+0

그런 포럼은 실제로 존재하며 여기에 게시하기 전에 거기에 물어 보는 시도를했지만 거기에는 내 문의가 받아 들여지지 않습니다. –

+0

그럴 경우 행운을 기원합니다. :) –

+0

autowired가 null 대신 그 안에 뭔가가 있는지 확인 했습니까? 또한 autowired가 뭔가를 가지고 있다면 ... 유효합니까? 시드를 읽은 후에 제대로 읽으면 값을 반환해야합니다. – pompanoSlayer

답변

0

코드를 디버그 할 수 없습니다.

하지만 실제로 데이터베이스를 채우고 있지 않은 것으로 의심됩니다. 이것은 스프링 설정이나 데이터를 읽는 데 사용하는 코드와 관련이 있습니다.

하나 또는 두 개의 사실을 직접 삽입하고 읽을 수 있는지 테스트하는 간단한 방법을 시도해보십시오. 더 복잡한 것을 시도하기 전에.