package Ġcom . tol k iana . li quibase demo . data Ċ Ċ import Ġcom . tol k iana . li quibase demo . data . map pers . Color Mapper Ċ import Ġcom . tol k iana . li quibase demo . data . models . Color Ċ import Ġorg . springframework . data . repository . reactive . Reactive Crud Repository Ċ import Ġorg . springframework . r 2 dbc . core . Database Client Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġreactor . core . publisher . Flux Ċ Ċ const Ġval Ġselect Colors By Product Ġ= Ġ""" ĊĠĠĠ ĠSELECT Ġcolors . id Ġas Ġcolor _ id , Ġcolors . code Ġas Ġcolor _ code , Ġcolors . name Ġas Ġcolor _ name ĊĠĠĠ ĠFROM Ġcolors ĊĠĠĠ ĠINNER ĠJOIN Ġproduct _ colors Ġpc Ġon Ġcolors . id Ġ= Ġpc . color _ id ĊĠĠĠ ĠWHERE Ġproduct _ id Ġ= Ġ: productId Ċ """ Ċ Ċ @ Repository Ċ interface ĠColor Repository : ĠReactive Crud Repository < Color , ĠInt >, ĠCustom Color Repository Ġ{} Ċ Ċ interface ĠCustom Color Repository Ġ{ ĊĠĠĠ Ġfun ĠfindBy Product ( productId : ĠInt ): ĠFlux < Color > Ċ } Ċ Ċ // ĠCustom ĠRe positories Ġneed Ġto Ġend Ġwith Ġ" Impl " Ġor Ġeverything Ġexplo des ! Ċ class ĠCustom Color Repository Impl ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdatabase Client : ĠDatabase Client , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmapper : ĠColor Mapper Ċ ): ĠCustom Color Repository Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠfindBy Product ( productId : ĠInt ): ĠFlux < Color > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdatabase Client . sql ( select Colors By Product ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind (" productId ", ĠproductId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( mapper :: apply ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. all () ĊĠĠĠ Ġ} Ċ } Ċ