package Ġsk . v ild ib ald . pol ls . repository Ċ Ċ import Ġorg . springframework . data . domain . Page Ċ import Ġorg . springframework . data . domain . Page able Ċ import Ġorg . springframework . data . jpa . repository . Jpa Repository Ċ import Ġorg . springframework . data . jpa . repository . Query Ċ import Ġorg . springframework . data . repository . query . Param Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġsk . v ild ib ald . pol ls . model . Vote Ċ import Ġsk . v ild ib ald . pol ls . model . Choice Vote Count Ċ Ċ @ Repository Ċ interface ĠV ote Repository Ġ: ĠJ pa Repository < Vote , ĠLong > Ġ{ ĊĠĠĠ Ġ@ Query ( value Ġ= Ġ" SELECT ĠNEW Ġsk . v ild ib ald . pol ls . model . Choice Vote Count ( v . choice . id , Ġcount ( v . id )) " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠFROM ĠV ote Ġv ĠWHERE Ġv . poll . id Ġin Ġ: poll Ids ĠGROUP ĠBY Ġv . choice . id ") ĊĠĠĠ Ġfun Ġcount By Poll Id In GroupBy Choice Id (@ Param (" poll Ids ") Ġpoll Ids : ĠIterable < Long >) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠList < Choice Vote Count > ĊĊĠĠĠ Ġ@ Query ( value Ġ= Ġ" SELECT ĠNEW Ġsk . v ild ib ald . pol ls . model . Choice Vote Count ( v . choice . id , Ġcount ( v . id )) " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ĠFROM ĠV ote Ġv ĠWHERE Ġv . poll . id Ġ= Ġ: poll Id ĠGROUP ĠBY Ġv . choice . id ") ĊĠĠĠ Ġfun Ġcount By Poll Id GroupBy Choice Id (@ Param (" poll Id ") Ġpoll Id : ĠLong ): ĠList < Choice Vote Count > ĊĊĠĠĠ Ġ@ Query ( value Ġ= Ġ" SELECT Ġv ĠFROM ĠV ote Ġv Ġwhere Ġv . user . id Ġ= Ġ: userId Ġand Ġv . poll . id Ġin Ġ: poll Ids ") ĊĠĠĠ Ġfun ĠfindBy UserId And Poll Id In (@ Param (" userId ") ĠuserId : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Param (" poll Ids ") Ġpoll Ids : ĠIterable < Long >): ĠList < Vote > ĊĊĠĠĠ Ġ@ Query ( value Ġ= Ġ" SELECT Ġv ĠFROM ĠV ote Ġv Ġwhere Ġv . user . id Ġ= Ġ: userId Ġand Ġv . poll . id Ġ= Ġ: poll Id ") ĊĠĠĠ Ġfun ĠfindBy UserId And Poll Id (@ Param (" userId ") ĠuserId : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Param (" poll Id ") Ġpoll Id : ĠLong ?): ĠV ote ? ĊĊĠĠĠ Ġ@ Query ( value Ġ= Ġ" SELECT ĠCOUNT ( v . id ) Ġfrom ĠV ote Ġv Ġwhere Ġv . user . id Ġ= Ġ: userId ") ĊĠĠĠ Ġfun Ġcount By UserId (@ Param (" userId ") ĠuserId : ĠLong ): ĠLong ĊĊĠĠĠ Ġ@ Query ( value Ġ= Ġ" SELECT Ġv . poll . id ĠFROM ĠV ote Ġv ĠWHERE Ġv . user . id Ġ= Ġ: userId ") ĊĠĠĠ Ġfun Ġfind V oted Poll Ids By UserId (@ Param (" userId ") ĠuserId : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage able : ĠPage able ): ĠPage < Long > Ċ }