package Ġcom . nab en ik . repository Ċ Ċ import Ġcom . nab en ik . model . Ad m Phrase Ċ import Ġorg . slf 4 j . Logger Ċ import Ġjavax . annotation . Post Construct Ċ import Ġjavax . enterprise . context . Request Scoped Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . persistence . EntityManager Ċ Ċ @ Request Scoped Ċ class ĠAd m Phrase Repository Ġ@ Inject Ġconstructor () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġem : EntityManager ĊĊĠĠĠ Ġ@ Post Construct ĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln Ġ(" Boot ing Ġrepository ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate ( adm Phrase : Ad m Phrase ) Ġ= Ġem . persist ( adm Phrase ) ĊĊĠĠĠ Ġfun Ġupdate ( adm Phrase : Ad m Phrase ) Ġ= Ġem . merge ( adm Phrase ) ĊĊĠĠĠ Ġfun Ġfind ById ( phrase Id : ĠLong ) Ġ= Ġem . find ( Ad m Phrase :: class . java , Ġphrase Id ) ĊĊĠĠĠ Ġfun Ġdelete ( adm Phrase : ĠAd m Phrase ) Ġ= Ġem . remove ( adm Phrase ) ĊĊĠĠĠ Ġfun Ġlist All ( author : ĠString , Ġphrase : ĠString ): ĠList < Ad m Phrase > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ""" SELECT Ġp ĠFROM ĠAd m Phrase Ġp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġp . author ĠLIKE Ġ: author ĊĠĠĠĠĠĠĠĠĠĠĠ Ġand Ġp . phrase ĠLIKE Ġ: phrase ĊĠĠĠĠĠĠĠ Ġ""" ĊĊĠĠĠĠĠĠĠ Ġreturn Ġem . createQuery ( query , ĠAd m Phrase :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setParameter (" author ", Ġ"% $ author % ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setParameter (" phrase ", Ġ"% $ phrase % ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. result List ĊĠĠĠ Ġ} Ċ Ċ }