2016-10-23 13 views
0

Java用RethinkDB driverを使用しています。私はこのようなテーブルjamにフィールドendedAtせずに行をフィルタしたい:Java RethinkDB予想されるタイプDATUMですが、選択されました

public List<Jam> getCurrent(){ 
     Cursor cursor = r.table("jam") 
       .filter(row -> row.hasFields("endedAt")).not() 
       .run(conn); 
     List<Map<String,Object>> list=cursor.toList(); 
     return list.stream().map(item->JamRepository.toJam(item)).collect(Collectors.toList()); 
    } 

そして私は、私は別のクラスに別のフィルタ機能を持って、このエラーにExpected type DATUM but found SELECTION Java

を持っている:

public List<Speedlog> getByTime(long time){ 
     Cursor cursor = r.table("speedlog") 
       .filter(row -> row.g("createdAt").eq(time)) 
       .run(conn); 
     List<Map<String,Object>> list=cursor.toList(); 
     return list.stream().map(item->SpeedlogRepository.toSpeedlog(item)).collect(Collectors.toList()); 
    } 

この機能は、誰もがこれらの違いを作るかを説明してもらえ

正常に動作します二? getCurrent機能でエラーが発生するのはなぜですか?その意味は何か、修正する方法は?あなたは

答えて

1

not()row.hasFields("endedAt")後に右でなければなりませんありがとうございました。今のところ、filterの結果にnot()を呼び出そうとしています。だから、正しいコード:

public List<Jam> getCurrent(){ 
     Cursor cursor = r.table("jam") 
       .filter(row -> row.hasFields("endedAt").not()) 
       .run(conn); 
     List<Map<String,Object>> list=cursor.toList(); 
     return list.stream().map(item->JamRepository.toJam(item)).collect(Collectors.toList()); 
} 
関連する問題