-1

これを Clojure Google サポート グループに投稿してもうまくいかないようなので、ここで質問してみます。

以下のわずかに変更された GettingStarted.java (clojure ディストリビューションから) を Spring 構成のテストとして実行して、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();

................................................

[main] INFO com.excelsiorsoft.daedalus.persistence.datomic.GettingStartedTest - すべてのコミュニティを検索し、結果を数えています...

[main] INFO com.excelsiorsoft.daedalus.persistence.datomic.GettingStartedTest - 結果のサイズ = 0

手を貸してくれてありがとう。

4

1 に答える 1

0

あなたのコードをデバッグすることはできません。

しかし、そもそもデータベースに実際にデータを入力していないのではないかと思います。これは、Spring の構成、またはデータの読み取りに使用しているコードに関係している可能性があります。

より複雑なことを試す前に、1 つまたは 2 つの事実を直接挿入する単純なテストを試して、それらを読めるかどうかをテストすることをお勧めします。

于 2013-01-03T04:59:39.203 に答える