1

メソッド getAllViewsCursor() が、テスト データで適切な結果を返していません。アカウントとアクティビティには多対多の関係があるため、null 句を使用した以下のクエリでは実際の結果が得られません。

select * FROM Activity as e INNER JOIN e.account as a WHERE e.numTimes < 15 and (e.account = null or a.isActive = false)

act5 には account の null 値が必要ですが、act7 には acc1 が必要です。それが逆になり、テストが失敗している間。メソッドの最後にある TestJoins.java の testOuterJoinWithNullClause() メソッドに以下の行を追加してみてください。

    rows.next();
    List<TypedRow> joinedRow1 = rows.getCurrent();
    TypedRow typedRow1 = joinedRow1.get(0);
    TypedRow theJoinedRow1 = joinedRow1.get(1);
    log.info("joinedRow1= "+joinedRow1);
    Assert.assertEquals("e", typedRow1.getView().getAlias());
    Assert.assertEquals("act5", typedRow1.getRowKeyString());
    Assert.assertEquals(null, theJoinedRow1.getRowKey());

    rows.next();
    List<TypedRow> joinedRow2 = rows.getCurrent();
    TypedRow typedRow2 = joinedRow2.get(0);
    TypedRow theJoinedRow2 = joinedRow2.get(1);
    log.info("joinedRow1= "+joinedRow2);
    Assert.assertEquals("e", typedRow2.getView().getAlias());
    Assert.assertEquals("act7", typedRow2.getRowKeyString());
    Assert.assertEquals("acc1", theJoinedRow2.getRowKey());
4

1 に答える 1

1

更新: このバグは master ブランチで修正されました。楽しい。

うーん、アドホック インターフェイスに良いバグが見つかりました (これは NoSqlNamedQueries で問題なく機能しますが、アドホックでは機能しません)。これが修正されたら、回答を更新します。

于 2012-09-27T15:41:00.807 に答える