package Ġcom . my project . backend . service Ċ Ċ import Ġcom . my project . backend . jpa . Account Ċ import Ġcom . my project . backend . jpa . Employee Ċ import Ġcom . my project . backend . jpa . Role Ċ import Ġcom . my project . backend . models . Update Account Ċ import Ġcom . my project . backend . models . Update User Ċ import Ġcom . my project . backend . repositories . Account Repository Ċ import Ġcom . my project . backend . repositories . Employee Repository Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . repository . findById OrNull Ċ import Ġorg . springframework . data . repository . query . Param Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjavax . transaction . Transactional Ċ Ċ @ Service Ċ class ĠEmployee Service Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġemployee Repository : ĠEmployee Repository ĊĠĠĠĠĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġadd Role (@ Param (" employee ") Ġemployee : ĠEmployee , Ġ@ Param (" role ") Ġrole : ĠRole ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġemployee . roles ?. add ( role ) ĊĠĠĠĠĠĠĠ Ġreturn Ġemployee ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġremove Role (@ Param (" employee ") Ġemployee : ĠEmployee , Ġ@ Param (" role ") Ġrole : ĠRole ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġemployee . roles ?. remove ( role ) ĊĠĠĠĠĠĠĠ Ġreturn Ġemployee ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġupdate Employee ( account : ĠUpdate User , Ġid : ĠLong ): ĠEmployee ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ Ġemployee ToUpdate Ġ= Ġemployee Repository . findById OrNull ( id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Ġemployee ToUpdate Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġemployee ToUpdate . firstName Ġ= Ġaccount . firstName !! ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġemployee ToUpdate . lastName Ġ= Ġaccount . lastName !! ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġemployee ToUpdate . title Ġ= Ġaccount . title !! ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġemployee ToUpdate . salary Ġ= Ġaccount . salary !! ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġemployee ToUpdate . company Id Ġ= Ġaccount . company Id !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ Ġemployee ToUpdate ; ĊĠĠĠ Ġ} Ċ }