package Ġcom . github . mik ow iec . e pl aza . admin . dao . impl Ċ Ċ import Ġcom . github . mik ow iec . e pl aza . admin . dao . Second Kill Dao Ċ import Ġcom . github . mik ow iec . e pl aza . model . Second Kill Ċ import Ġorg . hibernate . SessionFactory Ċ import Ġorg . hibernate . criterion . Detached Criteria Ċ import Ġorg . hibernate . criterion . Restrictions Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . orm . hibernate 5 . Hibernate Template Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ Ċ import Ġjava . io . Serializable Ċ Ċ @ Repository Ċ open Ġclass ĠSecond Kill Dao Impl Ġ@ Autowired Ċ constructor ( session Factory : ĠSession Factory ) Ġ: ĠSecond Kill Dao Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtemplate : ĠHibernate Template ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtemplate Ġ= ĠHibernate Template ( session Factory ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll (): ĠList < Second Kill > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcriteria Ġ= ĠDet ached Criteria . for Class ( Second Kill :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtemplate . findBy Criteria ( criteria ). map Ġ{ it Ġas ĠSecond Kill } ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind ById ( id : ĠInt ): ĠSecond Kill ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcriteria Ġ= ĠDet ached Criteria . for Class ( Second Kill :: class . java ) ĊĠĠĠĠĠĠĠ Ġcriteria . add ( Restrictions . eq (" id ", Ġid )) ĊĠĠĠĠĠĠĠ Ġval Ġresult List Ġ= Ġtemplate . findBy Criteria ( criteria ) Ġas ĠList < Second Kill > ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result List . size Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġresult List [ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindBy Page ( page : ĠInt , ĠpageSize : ĠInt ): ĠList < Second Kill > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcriteria Ġ= ĠDet ached Criteria . for Class ( Second Kill :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġ( page Ġ- Ġ 1 ) Ġ* ĠpageSize ĊĠĠĠĠĠĠĠ Ġreturn Ġtemplate . findBy Criteria ( criteria , Ġoffset , ĠpageSize ). map Ġ{ it Ġas ĠSecond Kill } ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġsave ( second Kill : ĠSecond Kill ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġtemplate . save ( second Kill ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ( result Ġas ĠInteger ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġupdate ( second Kill : ĠSecond Kill ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtemplate . update ( second Kill ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġdelete ( second Kill : ĠSecond Kill ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtemplate . delete ( second Kill ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ