package Ġno . nav . sy fo . repository Ċ Ċ import Ġno . nav . sy fo . domain . S var Ċ import Ġno . nav . sy fo . domain . Sy ke pen ge so kn ad Ċ import Ġorg . springframework . jdbc . core . named param . Map Sql Parameter Source Ċ import Ġorg . springframework . jdbc . core . named param . Named Parameter Jdbc Template Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġorg . springframework . util . StringUtils . isEmpty Ċ import Ġjava . util . ArrayList Ċ import Ġjava . util . HashMap Ċ Ċ @ Service Ċ @ Transactional Ċ @ Repository Ċ class ĠS var DAO ( private Ġval Ġnamed Parameter Jdbc Template : ĠNamed Parameter Jdbc Template ) Ġ{ ĊĊĠĠĠ Ġfun Ġfin n S var ( sp ors mal I der : ĠSet < String >): ĠHashMap < String , ĠMutable List < S var >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs var Map Ġ= ĠHashMap < String , ĠMutable List < S var >>() ĊĠĠĠĠĠĠĠ Ġsp ors mal I der . chunk ed ( 1 0 0 0 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnamed Parameter Jdbc Template . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" SELECT Ġ* ĠFROM ĠS VAR Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" WHERE ĠSP OR SM AL _ ID ĠIN Ġ(: sp ors mal I der ) Ġ", ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sp ors mal I der ", Ġit ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĠresultSet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsp ors mal Id Ġ= ĠresultSet . getString (" SP OR SM AL _ ID ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs var Map . compute If Absent ( sp ors mal Id ) Ġ{ ĠArrayList () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs var Map [ sp ors mal Id ] !!. add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS var ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠresultSet . getString (" ID "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver di Ġ= ĠresultSet . getString (" VER DI "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġav git t Av Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġs var Map ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlag re S var ( sp ors mal Id : ĠString , Ġs var : ĠS var ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠ Ġif Ġ( s var Ġ== Ġnull Ġ|| ĠisEmpty ( s var . ver di )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnamed Parameter Jdbc Template . update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" INSERT ĠINTO ĠS VAR Ġ( SP OR SM AL _ ID , ĠVER DI ) ĠVALUES Ġ(: sp ors mal Id , Ġ: ver di )", ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sp ors mal Id ", Ġsp ors mal Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" ver di ", Ġs var . ver di ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġs lett S var ( sy ke pen ge so kn ad UUID : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnamed Parameter Jdbc Template . update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" DELETE ĠFROM ĠS VAR ĠWHERE ĠS VAR . ID ĠIN Ġ( SELECT ĠS VAR . ID ĠFROM ĠS VAR ĠINNER ĠJOIN ĠSP OR SM AL ĠON ĠS VAR . SP OR SM AL _ ID Ġ= ĠSP OR SM AL . ID ĠINNER ĠJOIN ĠSY KE PEN GES OK N AD ĠON ĠSP OR SM AL . SY KE PEN GES OK N AD _ ID Ġ= ĠSY KE PEN GES OK N AD . ID ĠWHERE ĠSY KE PEN GES OK N AD _ UUID Ġ= Ġ: so kn ad UUID )", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" so kn ad UUID ", Ġsy ke pen ge so kn ad UUID ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġs lett S var ( sp ors mal I der : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ors mal I der . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsp ors mal I der . chunk ed ( 1 0 0 0 ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnamed Parameter Jdbc Template . update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" DELETE ĠFROM ĠS VAR ĠWHERE ĠSP OR SM AL _ ID ĠIN Ġ(: sp ors mal I der )", ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMap Sql Parameter Source () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Value (" sp ors mal I der ", Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġover sk riv S var ( sy ke pen ge so kn ad : ĠSy ke pen ge so kn ad ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalle Sp ors mal Og Under sp ors mal Ġ= Ġsy ke pen ge so kn ad . alle Sp ors mal Og Under sp ors mal () ĊĠĠĠĠĠĠĠ Ġs lett S var ( alle Sp ors mal Og Under sp ors mal . map NotNull Ġ{ Ġit . id Ġ}) ĊĊĠĠĠĠĠĠĠ Ġalle Sp ors mal Og Under sp ors mal ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġsp ors mal Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ors mal . s var ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġs var Ġ-> Ġlag re S var ( sp ors mal . id !! , Ġs var ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ