package Ġsample . context . orm Ċ Ċ import Ġorg . springframework . beans . factory . Object Provider Ċ import Ġorg . springframework . boot . context . properties . Configuration Properties Ċ import Ġorg . springframework . orm . jpa . Jpa Transaction Manager Ċ import Ġorg . springframework . orm . jpa . Local Container EntityManager Factory Bean Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġsample . context . Domain Helper Ċ import Ġsample . context . orm . Default Repository . Companion . Bean Name E mf Ċ import Ġjavax . persistence . EntityManager Ċ import Ġjavax . persistence . EntityManager Factory Ċ import Ġjavax . persistence . Persistence Context Ċ import Ġjavax . sql . DataSource ĊĊ Ċ /** Ġæ¨ Ļ æºĸ ãĤ¹ ãĤŃ ãĥ¼ãĥ ŀ ãģ® Repository ãĤĴ è¡¨ çı¾ ãģĹãģ¾ãģĻ ãĢĤ Ġ*/ Ċ @ Repository Ċ class ĠDefault Repository ( ĊĠĠĠĠĠĠĠ Ġdh : ĠObject Provider < Domain Helper >, ĊĠĠĠĠĠĠĠ Ġinterceptor : ĠObject Provider < Orm Interceptor >, ĊĠĠĠĠĠĠĠ Ġ@ Persistence Context ( unit Name Ġ= ĠBean Name E mf ) ĊĠĠĠĠĠĠĠ Ġvar Ġem : ĠEntity Manager ? Ġ= Ġnull Ċ ) Ġ: ĠO rm Repository ( dh , Ġinterceptor ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġem (): ĠEntity Manager Ġ= Ġem !! ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBean Name Ds Ġ= Ġ" dataSource " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBean Name E mf Ġ= Ġ" entityManager Factory " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBean Name Tx Ġ= Ġ" transaction Manager " ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ /** Ġæ¨ Ļ æºĸ ãĤ¹ ãĤŃ ãĥ¼ãĥ ŀ ãģ® DataSource ãĤĴ çĶŁæĪĲ ãģĹãģ¾ãģĻ ãĢĤ Ġ Ġ*/ Ċ @ Configuration Properties ( prefix Ġ= Ġ" extension . datasource . default ") Ċ class ĠDefault DataSource Properties ( ĊĠĠĠĠĠĠĠ Ġvar Ġj pa : ĠO rm Repository Properties Ġ= ĠO rm Repository Properties () Ċ ) Ġ: ĠO rm DataSource Properties () Ġ{ ĊĊĠĠĠ Ġfun Ġentity ManagerFactory Bean ( dataSource : ĠDataSource ): ĠLocal Container EntityManager Factory Bean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj pa . entityManager Factory Bean ( Bean Name E mf , ĠdataSource ) ĊĊĠĠĠ Ġfun Ġtransaction Manager ( emf : ĠEntity ManagerFactory ): ĠJ pa Transaction Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj pa . transaction Manager ( emf ) Ċ } Ċ