package Ġno . nav . hel se . mode ll . over sty ring Ċ Ċ import Ġk ot li query . query Of Ċ import Ġk ot li query . session Of Ċ import Ġno . nav . hel se . over sty ring . Over sty ring Dag Dto Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġjava . time . LocalDate Ċ import Ġjava . util .* Ċ import Ġjavax . sql . DataSource Ċ Ċ internal Ġclass ĠOver sty ring Dao ( private Ġval ĠdataSource : ĠDataSource ) Ġ{ ĊĠĠĠ Ġfun Ġpers ister Over sty ring ( ĊĠĠĠĠĠĠĠ Ġh en del se Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġorgan is as j ons nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġbe gr un n else : ĠString , ĊĠĠĠĠĠĠĠ Ġover st yr te D ager : ĠList < Over sty ring Dag Dto >, ĊĠĠĠĠĠĠĠ Ġs aks be handler Ref : ĠUUID ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsession Of ( dataSource , Ġreturn Generated Key Ġ= Ġtrue ). use Ġ{ Ġsession Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Language (" PostgreSQL ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopp rett Over sty ring Query Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSERT ĠINTO Ġover sty ring ( hen del se _ id , Ġperson _ ref , Ġar be id sg iver _ ref , Ġbe gr un n else , Ġs aks be handler _ ref ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ: hen del se _ id , Ġp . id , Ġag . id , Ġ: be gr un n else , Ġ: s aks be handler _ ref ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġar be id sg iver Ġag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġp . f od se ls nummer Ġ= Ġ: f od se ls nummer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAND Ġag . org nummer Ġ= Ġ: org nr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Language (" PostgreSQL ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopp rett Over sty ring Dag Query Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSERT ĠINTO Ġover st yr td ag ( over sty ring _ ref , Ġdat o , Ġdag type , Ġgrad ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALUES Ġ(: over sty ring _ ref , Ġ: dat o , Ġ: dag type , Ġ: grad ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġover sty ring Ref Ġ= Ġsession . run ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett Over sty ring Query , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hen del se _ id " Ġto Ġh en del se Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f od se ls nummer " Ġto Ġf Ã¸ d se ls nummer . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org nr " Ġto Ġorgan is as j ons nummer . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be gr un n else " Ġto Ġbe gr un n else , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s aks be handler _ ref " Ġto Ġs aks be handler Ref ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). as Update And Return Generated Key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession . transaction Ġ{ Ġtransaction al Session Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġover st yr te D ager . forEach Ġ{ Ġdag Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction al Session . run ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett Over sty ring Dag Query , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" over sty ring _ ref " Ġto Ġover sty ring Ref , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" dat o " Ġto Ġdag . dat o , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" dag type " Ġto Ġdag . type . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" grad " Ġto Ġdag . grad ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). as Update ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpers ister Over sty ring In n te kt ( ĊĠĠĠĠĠĠĠ Ġh en del se Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġorgan is as j ons nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġbe gr un n else : ĠString , ĊĠĠĠĠĠĠĠ Ġfork lar ing : ĠString , ĊĠĠĠĠĠĠĠ Ġs aks be handler Ref : ĠUUID , ĊĠĠĠĠĠĠĠ ĠmÃ¥ ned lig In n te kt : ĠDouble , ĊĠĠĠĠĠĠĠ Ġsk j Ã¦ ring st id sp unkt : ĠLocalDate ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsession Of ( dataSource , Ġreturn Generated Key Ġ= Ġtrue ). use Ġ{ Ġsession Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Language (" PostgreSQL ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopp rett Over sty ring Query Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠINSERT ĠINTO Ġover sty ring _ inn te kt ( hen del se _ ref , Ġperson _ ref , Ġar be id sg iver _ ref , Ġs aks be handler _ ref , Ġbe gr un n else , Ġfork lar ing , Ġman ed lig _ inn te kt , Ġsk ja ering st id sp unkt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ: hen del se _ id , Ġp . id , Ġag . id , Ġ: s aks be handler _ ref , Ġ: be gr un n else , Ġ: fork lar ing , Ġ: man ed lig _ inn te kt , Ġ: sk ja ering st id sp unkt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġar be id sg iver Ġag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson Ġp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWHERE Ġp . f od se ls nummer Ġ= Ġ: f od se ls nummer ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAND Ġag . org nummer Ġ= Ġ: org nr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession . run ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp rett Over sty ring Query , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hen del se _ id " Ġto Ġh en del se Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f od se ls nummer " Ġto Ġf Ã¸ d se ls nummer . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" org nr " Ġto Ġorgan is as j ons nummer . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s aks be handler _ ref " Ġto Ġs aks be handler Ref , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be gr un n else " Ġto Ġbe gr un n else , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fork lar ing " Ġto Ġfork lar ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" man ed lig _ inn te kt " Ġto ĠmÃ¥ ned lig In n te kt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sk ja ering st id sp unkt " Ġto Ġsk j Ã¦ ring st id sp unkt ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). as Update And Return Generated Key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ