package Ġno . nav . su . se . bak over . database . gr un nl ag Ċ Ċ import Ġk ot li query . Row Ċ import Ġno . nav . su . se . bak over . common . peri ode . Per i ode Ċ import Ġno . nav . su . se . bak over . database . Session Ċ import Ġno . nav . su . se . bak over . database . Transactional Session Ċ import Ġno . nav . su . se . bak over . database . h ent Ċ import Ġno . nav . su . se . bak over . database . h ent List e Ċ import Ġno . nav . su . se . bak over . database . insert Ċ import Ġno . nav . su . se . bak over . database . op pd ater ing Ċ import Ġno . nav . su . se . bak over . database . tid sp unkt Ċ import Ġno . nav . su . se . bak over . database . uuid Ċ import Ġno . nav . su . se . bak over . domain . gr un nl ag . G run nl ag Ċ import Ġno . nav . su . se . bak over . domain . gr un nl ag . Uf Ã¸ re grad Ċ import Ġjava . util . UUID Ċ Ċ internal Ġclass ĠU f Ã¸ re gr un nl ag Postgres Repo Ġ{ ĊĊĠĠĠ Ġinternal Ġfun Ġlag re ( be handling Id : ĠUUID , Ġu f Ã¸ re gr un nl ag : ĠList < G run nl ag . Uf Ã¸ re gr un nl ag >, Ġtx : ĠTransaction al Session ) Ġ{ ĊĠĠĠĠĠĠĠ Ġs lett For Be handling Id ( be handling Id , Ġtx ) ĊĠĠĠĠĠĠĠ Ġu f Ã¸ re gr un nl ag . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlag re ( it , Ġbe handling Id , Ġtx ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġh ent Uf Ã¸ re gr un nl ag ( be handling Id : ĠUUID , Ġsession : ĠSession ): ĠList < G run nl ag . Uf Ã¸ re gr un nl ag > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Ġ* Ġfrom Ġg run nl ag _ uf Ã¸ re Ġwhere Ġbe handling Id Ġ= Ġ: be handling Id ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. h ent List e ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be handling Id " Ġto Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Uf Ã¸ re gr un nl ag () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġh ent For Uf Ã¸ re gr un nl ag Id ( uf Ã¸ re gr un nl ag Id : ĠUUID , Ġsession : ĠSession ): ĠG run nl ag . Uf Ã¸ re gr un nl ag ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ""" Ġselect Ġ* Ġfrom Ġg run nl ag _ uf Ã¸ re Ġwhere Ġid =: id """. trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. h ent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id " Ġto Ġu f Ã¸ re gr un nl ag Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsession , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Uf Ã¸ re gr un nl ag () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġs lett For Be handling Id ( be handling Id : ĠUUID , Ġtx : ĠTransaction al Session ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Ġfrom Ġg run nl ag _ uf Ã¸ re Ġwhere Ġbe handling Id Ġ= Ġ: be handling Id ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. op pd ater ing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be handling Id " Ġto Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠRow . to Uf Ã¸ re gr un nl ag (): ĠG run nl ag . Uf Ã¸ re gr un nl ag Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠG run nl ag . Uf Ã¸ re gr un nl ag ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġuuid (" id "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett et Ġ= Ġtid sp unkt (" op prett et "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Ġ= ĠPer i ode . create ( local Date (" f ra Og Med "), Ġlocal Date (" til Og Med ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġu f Ã¸ re grad Ġ= ĠU f Ã¸ re grad . parse ( int (" uf Ã¸ re grad ")), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor vent et In n te kt Ġ= Ġint (" for vent et In n te kt "), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlag re ( uf Ã¸ re gr un nl ag : ĠG run nl ag . Uf Ã¸ re gr un nl ag , Ġbe handling Id : ĠUUID , Ġtx : ĠTransaction al Session ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Ġinto Ġg run nl ag _ uf Ã¸ re ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ra Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġu f Ã¸ re grad , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor vent et In n te kt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġvalues ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: op prett et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: be handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: f ra Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: til Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: u fore grad , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: for vent et In n te kt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. insert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id " Ġto Ġu f Ã¸ re gr un nl ag . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" op prett et " Ġto Ġu f Ã¸ re gr un nl ag . op prett et , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be handling Id " Ġto Ġbe handling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f ra Og Med " Ġto Ġu f Ã¸ re gr un nl ag . peri ode . f ra Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" til Og Med " Ġto Ġu f Ã¸ re gr un nl ag . peri ode . til Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" u fore grad " Ġto Ġu f Ã¸ re gr un nl ag . uf Ã¸ re grad . value , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" for vent et In n te kt " Ġto Ġu f Ã¸ re gr un nl ag . for vent et In n te kt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtx , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ