2016-04-20 10 views
0

私は基本的に地図であり、JOOQからbooktypeとcount情報を持っている地図を取得しようとしています。 私は以下のさまざまな組み合わせを試しましたが、エラーが続いています。任意の助けいただければ幸いです。JOOQ selectCountから地図を取得する

Map<String, Result<Record1<Integer>>> countMap = ctx.selectCount().from(BOOKTABLE) 
     .groupBy(BOOKTABLE.TYPE) 
     .fetchMAP(BOOKTABLE.TYPE); 

答えて

2

ことがSELECT COUNT(*)クエリを生成しますので、あなたが本当にSELECT type, COUNT(*)クエリをしたいときは、この場合にはselectCount()を使用することはできません。

// Assuming this static import: 
import static org.jooq.impl.DSL.*; 

Map<String, Integer> map1 = 
ctx.select(BOOKTABLE.TYPE, count()) 
    .from(BOOKTABLE) 
    .groupBy(BOOKTABLE.TYPE) 
    .fetchMap(BOOKTABLE.TYPE, count()); 

または::

Map<String, Record2<String, Integer>> map2 = 
ctx.select(BOOKTABLE.TYPE, count()) 
    .from(BOOKTABLE) 
    .groupBy(BOOKTABLE.TYPE) 
    .fetchMap(BOOKTABLE.TYPE); 

または:

Map<String, List<Integer>> map3 = 
ctx.select(BOOKTABLE.TYPE, count()) 
    .from(BOOKTABLE) 
    .groupBy(BOOKTABLE.TYPE) 
    .fetchGroups(BOOKTABLE.TYPE, count()); 
ここ

は、クエリの外に取得しようとしているどのような種類に応じて、それをする方法はいくつかの方法、あり

または

Map<String, Result<Record2<String, Integer>>> map4 = 
ctx.select(BOOKTABLE.TYPE, count()) 
    .from(BOOKTABLE) 
    .groupBy(BOOKTABLE.TYPE) 
    .fetchGroups(BOOKTABLE.TYPE); 
+0

ありがとうございました – emraldinho

+0

@ Lukas Eder BOOKTABLE.TYPE列にNull値とEmpty値がある場合はどうなりますか? Willこのクエリは、空の値とヌル値を一緒にヌルとしてグループ化しますか? –

+0

@vinaypatlolla:Oracleの場合:はい、同じことです。他のデータベースでは、いいえ、 'NULL'と' ''は同じものではありません。 –

関連する問題