package Ġdb . migration . sqlite Ċ Ċ import Ġorg . fly way db . core . api . migration . Base Java Migration Ċ import Ġorg . fly way db . core . api . migration . Context Ċ import Ġorg . springframework . jdbc . core . Jdbc Template Ċ import Ġorg . springframework . jdbc . datasource . Single Connection DataSource Ċ Ċ class ĠV 2 0 2 0 0 8 2 0 1 5 0 9 2 3 __ metadata _ fields _ part _ 2 Ġ: ĠBase Java Migration () Ġ{ ĊĠ Ġoverride Ġfun Ġmigrate ( context : ĠContext ) Ġ{ ĊĠĠĠ Ġval Ġjdbc Template Ġ= ĠJdbc Template ( Single Connection DataSource ( context . connection , Ġtrue )) ĊĊĠĠĠ Ġval Ġbook Metadata Ġ= Ġjdbc Template . query For List ( ĊĠĠĠĠĠ Ġ""" select Ġm . AGE _ RAT ING , Ġm . AGE _ RAT ING _ LOCK , Ġm . PUBL IS HER , Ġm . PUBL IS HER _ LOCK , Ġm . READ ING _ DIRECTION , Ġm . READ ING _ DIRECTION _ LOCK , Ġb . SER IES _ ID , Ġm . NUMBER _ SORT Ċ from ĠBO OK _ METADATA Ġm Ċ left Ġjoin ĠBO OK ĠB Ġon ĠB . ID Ġ= Ġm . BOOK _ ID """ ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġif Ġ( book Metadata . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠ Ġval Ġparameters Ġ= Ġbook Metadata ĊĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit [" SER IES _ ID "] Ġ} ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġ( series Id , Ġv ) Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġval Ġage Rating Ġ= Ġv . map NotNull Ġ{ Ġit [" AGE _ RAT ING "] Ġas ĠInt ? Ġ}. max OrNull () ĊĠĠĠĠĠĠĠĠĠ Ġval Ġage Rating Lock Ġ= Ġv . map NotNull Ġ{ Ġit [" AGE _ RAT ING _ LOCK "] Ġas ĠInt ? Ġ}. max OrNull () ĊĊĠĠĠĠĠĠĠĠĠ Ġval Ġpublisher Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . filter Ġ{ Ġ( it [" PUBL IS HER "] Ġas ĠString ). isNotEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sorted By Descending Ġ{ Ġit [" NUMBER _ SORT "] Ġas ĠDouble ? Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit [" PUBL IS HER "] Ġas ĠString Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠ Ġval Ġpublisher Lock Ġ= Ġv . map NotNull Ġ{ Ġit [" PUBL IS HER _ LOCK "] Ġas ĠInt ? Ġ}. max OrNull () ĊĊĠĠĠĠĠĠĠĠĠ Ġval Ġreading Dir Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . map NotNull Ġ{ Ġit [" READ ING _ DIRECTION "] Ġas ĠString ? Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. grouping By Ġ{ Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. each Count () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. max By OrNull Ġ{ Ġit . value Ġ} ?. key ĊĠĠĠĠĠĠĠĠĠ Ġval Ġreading Dir Lock Ġ= Ġv . map NotNull Ġ{ Ġit [" READ ING _ DIRECTION _ LOCK "] Ġas ĠInt ? Ġ}. max OrNull () ĊĊĠĠĠĠĠĠĠĠĠ ĠarrayOf ( age Rating , Ġage Rating Lock , Ġpublisher , Ġpublisher Lock , Ġreading Dir , Ġreading Dir Lock , Ġseries Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġjdbc Template . batch Update ( ĊĠĠĠĠĠĠĠ Ġ" UPDATE ĠSER IES _ METADATA ĠSET ĠA GE _ RAT ING Ġ= Ġ?, ĠA GE _ RAT ING _ LOCK Ġ= Ġ?, ĠP UB L IS HER Ġ= Ġ?, ĠP UB L IS HER _ LOCK Ġ= Ġ?, ĠREAD ING _ DIRECTION Ġ= Ġ?, ĠREAD ING _ DIRECTION _ LOCK Ġ= Ġ? ĠWHERE ĠSER IES _ ID Ġ= Ġ?", ĊĠĠĠĠĠĠĠ Ġparameters ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ