testOuterJoinWithNullClause()因一个条件而失败

时间:2012-09-26 11:33:04

标签: playorm

方法getAllViewsCursor()未使用测试数据返回正确的结果。由于Account和Activity现在具有多对多关系,因此以下带有null子句的查询未给出实际结果

选择* FROM Activity作为e INNER JOIN e.account作为WHERE e.numTimes< 15和(e.account = null或a.isActive = false)

act5应该具有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());

1 个答案:

答案 0 :(得分:1)

更新:此错误现已在主分支中修复。享受。

嗯,你在ad-hoc界面中发现了一个很好的错误(这在NoSqlNamedQueries中运行得很好,而不是ad-hoc)。我修完后会更新答案。