What are the differences between GemfireRepository and CrudRepository in spring data gemfire -
gemfirerepository gemfire specific implementation of crudrepository spring info gemfire reference guide says if utilize gemfirerepository need have our domain classes correctly mapped configured regions bottstrap process fail otherwise..does mean need have @region annotation on domain classes?in case utilize crudrepository @region annotation not required because crudrepository not dependent on part ?
so using gemfirerepository , have cacheloader configured plug in part , cacheloader depends on gemfirerepository fetch info rdbms. according reference documentation if gemfirerepository internally dependent on region..then create circular dependency?
the sdg gemfirerepository interface extends sdc's crudrepository interface , adds couple of methods (findall(:sort), , overloaded save(:wrapper):t method), see...
http://docs.spring.io/spring-data-gemfire/docs/current/api/org/springframework/data/gemfire/repository/gemfirerepository.html
gemfirerepository interface "backed" simplegemfirerepository class.
whether application-specific repository interface extends gemfirerepository or crudrepository, or org.springframework.data.repository.repository, not matter. extending repository interface provided framework determines methods exposed in backing implementation "proxy" created framework.
e.g. if wanted create read-only repo, straight extend org.springframework.data.repository.repository, , re-create "read-only" methods crudrepository interface application-specific repository interface (e.g. findone(:id), findall(), exists(:id), i.e. no info store mutating methods, such save(:s):s).
but, using namespace element in spring config, instructing framework utilize sdg's repository infrastructure handle persistent operations of application domain objects gemfire, , regions. therefore, either application domain object must annotated @region, or now, sdg allows application repository interface annotated @region, in cases want application domain object needs stored in multiple regions of gemfire. see 8.1, entity mapping in sdg ref guide, farther details..
http://docs.spring.io/spring-data-gemfire/docs/1.4.0.release/reference/html/mapping.html#mapping.entities
regarding "circular dependency"... yes, creates circular dependency...
region -> cacheloader -> arepository -> part a.
and lead a...
org.springframework.beans.factory.beancurrentlyincreationexception
you need break cycle.
spring-data-gemfire
No comments:
Post a Comment