当前位置: 首页 > news >正文

推荐 官网 潍坊网站建设wordpress国外主题

推荐 官网 潍坊网站建设,wordpress国外主题,织梦系统做的商城网站,莒南做网站Spring Data是一个非常方便的库。 但是#xff0c;由于该项目是一个相当新的项目#xff0c;因此功能不佳。 默认情况下#xff0c;Spring Data JPA将基于SimpleJpaRepository提供DAO的实现。 在最近的项目中#xff0c;我开发了一个定制的存储库基类#xff0c;以便可以在… Spring Data是一个非常方便的库。 但是由于该项目是一个相当新的项目因此功能不佳。 默认情况下Spring Data JPA将基于SimpleJpaRepository提供DAO的实现。 在最近的项目中我开发了一个定制的存储库基类以便可以在其上添加更多功能。 您可以根据需要向该存储库基类添加特定于供应商的功能。 组态 您必须在spring bean配置文件中添加以下配置。 您必须指定一个新的存储库工厂类。 我们将在以后开发课程。 jpa:repositories base-packageexample.borislam.dao factory-classexample.borislam.data.springData.DefaultRepositoryFactoryBean/ 只需开发一个扩展JpaRepository的接口即可。 您应该记得用NoRepositoryBean对其进行注释。 NoRepositoryBean public interface GenericRepository T, ID extends Serializable extends JpaRepositoryT, ID { } 定义自定义存储库基础实现类 下一步是开发定制的基础存储库类。 您可以看到我只是这个自定义基础存储库中的一个属性即springDataRepositoryInterface。 我只想对存储库接口的自定义行为的行为进行更多控制。 在下一篇文章中我将展示如何添加此基础存储库类的更多功能。 SuppressWarnings(unchecked) NoRepositoryBean public class GenericRepositoryImplT, ID extends Serializable extends SimpleJpaRepositoryT, ID implements GenericRepositoryT, ID , Serializable{private static final long serialVersionUID 1L;static Logger logger Logger.getLogger(GenericRepositoryImpl.class);private final JpaEntityInformationT, ? entityInformation;private final EntityManager em;private final DefaultPersistenceProvider provider;private Class? springDataRepositoryInterface; public Class? getSpringDataRepositoryInterface() {return springDataRepositoryInterface;}public void setSpringDataRepositoryInterface(Class? springDataRepositoryInterface) {this.springDataRepositoryInterface springDataRepositoryInterface;}/*** Creates a new {link SimpleJpaRepository} to manage objects of the given* {link JpaEntityInformation}.* * param entityInformation* param entityManager*/public GenericRepositoryImpl (JpaEntityInformationT, ? entityInformation, EntityManager entityManager , Class? springDataRepositoryInterface) {super(entityInformation, entityManager);this.entityInformation entityInformation;this.em entityManager;this.provider DefaultPersistenceProvider.fromEntityManager(entityManager);this.springDataRepositoryInterface springDataRepositoryInterface;}/*** Creates a new {link SimpleJpaRepository} to manage objects of the given* domain type.* * param domainClass* param em*/public GenericRepositoryImpl(ClassT domainClass, EntityManager em) {this(JpaEntityInformationSupport.getMetadata(domainClass, em), em, null); }public S extends T S save(S entity){ if (this.entityInformation.isNew(entity)) {this.em.persist(entity);flush();return entity;}entity this.em.merge(entity);flush();return entity;}public T saveWithoutFlush(T entity){return super.save(entity);}public ListT saveWithoutFlush(Iterable? extends T entities){ListT result new ArrayListT();if (entities null) {return result;}for (T entity : entities) {result.add(saveWithoutFlush(entity));}return result;} } 作为一个简单的示例我只是覆盖了SimpleJPARepository的默认保存方法。 持久保存后save方法的默认行为不会刷新。 我进行了修改以使其在持久化后保持刷新状态。 另一方面我添加了另一个名为saveWithoutFlush的方法以允许开发人员调用保存实体而无需刷新。 定义自定义存储库工厂bean 最后一步是创建一个工厂bean类和一个工厂类以根据您自定义的基本存储库类来生成存储库。 public class DefaultRepositoryFactoryBean T extends JpaRepositoryS, ID, S, ID extends Serializableextends JpaRepositoryFactoryBeanT, S, ID {/*** Returns a {link RepositoryFactorySupport}.* * param entityManager* return*/protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) {return new DefaultRepositoryFactory(entityManager);} }/*** * The purpose of this class is to override the default behaviour of the spring JpaRepositoryFactory class.* It will produce a GenericRepositoryImpl object instead of SimpleJpaRepository. * */ public class DefaultRepositoryFactory extends JpaRepositoryFactory{private final EntityManager entityManager;private final QueryExtractor extractor;public DefaultRepositoryFactory(EntityManager entityManager) {super(entityManager);Assert.notNull(entityManager);this.entityManager entityManager;this.extractor DefaultPersistenceProvider.fromEntityManager(entityManager);}SuppressWarnings({ unchecked, rawtypes })protected T, ID extends Serializable JpaRepository?, ? getTargetRepository(RepositoryMetadata metadata, EntityManager entityManager) {Class? repositoryInterface metadata.getRepositoryInterface();JpaEntityInformation?, Serializable entityInformation getEntityInformation(metadata.getDomainType());if (isQueryDslExecutor(repositoryInterface)) {return new QueryDslJpaRepository(entityInformation, entityManager);} else {return new GenericRepositoryImpl(entityInformation, entityManager, repositoryInterface); //custom implementation}}Overrideprotected Class? getRepositoryBaseClass(RepositoryMetadata metadata) {if (isQueryDslExecutor(metadata.getRepositoryInterface())) {return QueryDslJpaRepository.class;} else {return GenericRepositoryImpl.class;}}/*** Returns whether the given repository interface requires a QueryDsl* specific implementation to be chosen.* * param repositoryInterface* return*/private boolean isQueryDslExecutor(Class? repositoryInterface) {return QUERY_DSL_PRESENT QueryDslPredicateExecutor.class.isAssignableFrom(repositoryInterface);} } 结论 现在您可以向基础存储库类添加更多功能。 在您的程序中您现在可以创建自己的存储库接口以扩展GenericRepository而不是JpaRepository。 public interface MyRepository T, ID extends Serializableextends GenericRepository T, ID {void someCustomMethod(ID id); } 在下一篇文章中我将向您展示如何向此GenericRepository添加休眠过滤器功能。 参考 “ 编程和平”博客上的JCG合作伙伴 Boris Lam 自定义Spring Data JPA存储库 。 翻译自: https://www.javacodegeeks.com/2012/08/customizing-spring-data-jpa-repository.html
http://www.yutouwan.com/news/144262/

相关文章:

  • 网站域名要钱吗贵州网络推广公司
  • apmserv 设置网站目录网站YYQQ建设
  • 南京专业的网站设计团队中国建筑人才招聘官网
  • 毕业设计做网站 答辩会问什么问题小制作四年级
  • 租赁商城手机网站开发扬州建设会计学会网站
  • 科技设计网站做装潢网站
  • 发卡网站建设wordpress纯代码
  • 信息化建设网站wordpress文章对齐方式
  • 公司网站备案多少钱中国有名的营销策划公司
  • 西宁高端网站制作公司网站建设策划书主要内容
  • 交易平台网站建设项目需求广州安全教育平台视频
  • 网站放到国外空间亦庄网站设计
  • 北京网站建设过程搜索引擎不友好的网站特征
  • 自己电脑做网站教程黑龙江建设厅网站首页
  • 网页优化与网站优ftp 网站 怎么上传
  • 句容工程建设招标网站排名优化网站建设
  • 做网站需要关注哪些重要问题上海seo网络推广公司
  • 用python做音乐网站以公开的文化
  • 网站制作 那种语言好网站友好度
  • 简单带数据库的网站模版谷歌网站开发语言
  • 什么网站都能进的浏览器个人网站建设的背景
  • 深圳做网站好的公司企业网站案例
  • 网站关键词优化遇到的情况和解决方法谁帮58同城做的网站
  • 做学术用的网站c 网站开发的书籍
  • 云南大永高速公路建设指挥部网站设计得到app下载
  • 嘉瑞建设集团有限公司网站客户关系管理的定义
  • 淮安专业做网站的公司苏州知名网站建设
  • 京东网站建设需求分析报告wordpress按时间过去文章
  • 网站建设实习任务完成情况杭州网站建设第一品牌
  • 云匠网可能会遇到哪些问题简单网站建设优化推广