`
simen_net
  • 浏览: 306268 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Spring3.1+ JpaDaoSupport被deprecated后的研究

 
阅读更多

这段时间准备把几个基础库类重写,之前发现了Spring升级到3.1之后以前写的DAO类出现deprecated的问题,当时没有仔细研究把Spring降到3.0.5了事。最近突然想到这个问题觉得还是要研究一下,于是找来资料看看,发现Spring在3.1之后决定完全支持JPA2标准,准备放弃之前的JpaDaoSupport和JpaTemplate等。也就是说,以后Spring不再使用JpaTemplate的方式去回调实现JPA的接口,而是完全采用注解和注入的方式去实现,这样就实现了Spring的完全解耦合。恩,是个不错的思路!

 

对比一下代码来发现不同之处

 

3.1之前我扩展的DAO类

public abstract class StrongDAOImpl<E, PK extends Serializable> extends JpaDaoSupport implements StrongDAO<E, PK> {
  public Class<E> entityClass;

  @SuppressWarnings("unchecked")
  public StrongDAOImpl() {
    this.entityClass = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
  }

  @Override
  public void delete(final E entity) {
    getJpaTemplate().remove(entity);
  }

  @Override
  public void delete(final PK id) {
    E entity = this.getByID(id);
    if (entity != null) {
      delete(entity);
    }
  }

 

3.1之后的实现方法

public abstract class StrongDAOImpl<E, PK extends Serializable> implements StrongDAO<E, PK> {

  @PersistenceContext
  private EntityManager entityManager;

  public EntityManager getEntityManager() {
    return this.entityManager;
  }

  public void setEntityManager(EntityManager entityManager) {
    this.entityManager = entityManager;
  }

  public void delete(E entity) {
    if (entity == null) {
      return;// //////
    } else {
      entityManager.remove(entity);
    }
  }

  public void delete(PK id) {
    if (id != null) {
      E entity = this.getByID(id);
      this.delete(entity);
    } else {
      return;// //////
    }
  }

 

要吃早餐了,先写到这里。如果有时间把扩展DAO类全部移植到Spring3.1+我再来更新

分享到:
评论

相关推荐

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.6.2. JpaTemplate 和 JpaDaoSupport 12.6.3. 基于原生的JPA实现DAO 12.6.4. 异常转化 12.6.5. 事务管理 12.6.6. JpaDialect III. Web 13. Web框架 13.1. 介绍 13.1.1. 与其他web框架的集成 13.1.2. Spring Web ...

    deprecated-2.0.1.gem

    deprecated-2.0.1.gem 下载

    如何不让php显示warning,deprecated字样

    你可以将其设置为一个常量,比如`E_ALL & ~E_NOTICE & ~E_DEPRECATED`,这将禁报通知(Notice)和废弃警告(Deprecated),但仍会报告其他严重错误: ```php error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED); ...

    Spring Framework 5.0.2 下载

    Dear Spring community, I’m pleased to announce that Spring Framework 5.0.2 and 4.3.13 are available now, as a pair of refinement releases which are recommended as immediate upgrades for all Spring ...

    添加一个consolewarn声明至函数利用deprecatedtag注释

    在JavaScript开发中,`@deprecated` 是一种常用的元数据注释,用于标记代码中的某个功能不再推荐使用,通常配合文档生成工具或者静态代码分析工具来提醒开发者避免继续使用这些功能。这个过程涉及到代码的维护性、...

    前端开源库-deprecated

    然而,随着时间的推移,某些开源库可能因为技术迭代、维护更新不足或者有更好的替代品出现而被标记为“deprecated”,意即“已弃用”。这个“前端开源库-deprecated”主题主要涉及那些不再推荐使用的前端库或组件,...

    [DEPRECATED] 硬币电子化回收箱 2016年中美青年创客大赛天津赛区作品

    [DEPRECATED] 硬币电子化回收箱 2016年中美青年创客大赛天津赛区作品解决方案 [DEPRECATED] 硬币电子化回收箱 2016年中美青年创客大赛天津赛区作品解决方案 [DEPRECATED] 硬币电子化回收箱 2016年中美青年创客大赛...

    spring-framework-reference.pdf

    Spring框架被划分为多个模块,每个模块都有其特定的功能: - **核心容器(Core Container)**:包括核心、Beans、Context和Expression Language模块,提供了Spring框架的基础功能,如依赖注入。 - **面向切面编程(AOP ...

    170: Warning: (1681, ‘Integer display width is deprecated and will be removed in a future release.’)

    在Python的数据库操作中,尤其是当你使用pymysql库连接MySQL数据库时,可能会遇到一个警告,提示"Integer display width is deprecated and will be removed in a future release." 这个警告源于MySQL数据库的一个...

    详解Spring简单容器中的Bean基本加载过程

    XmlBeanFactory 已经被置为 Deprecated,从 Spring 3.1 开始,但是 Spring 并没有定义出更加高级的基于 XML 加载 bean 的 BeanFactory,而是推荐采用更加原生的方式,即组合使用 DefaultListableBeanFactory 和 ...

    javax.annotation-3.1.2.2-sources.jar

    javax.annotation-3.1.2.2.jar则是编译后的二进制版本,包含了上述注解的实现和元数据。这个文件通常用于部署到服务器或包含在最终的可执行程序中,因为运行时环境需要这些注解的类来正确处理代码。 在实际应用中,...

    xorg-x11-deprecated-libs-6.8.2

    xorg-x11-deprecated-libs-6.8.2.rpm for redhat

    使用Spring boot标记一个方法过时

    Spring Boot,作为一个基于Spring框架的高度集成了许多常见功能的微服务开发工具,同样支持使用Java的`@Deprecated`注解来标记过时的方法。本篇文章将详细介绍如何在Spring Boot中使用`@Deprecated`注解,并讨论其在...

    Spring4.X最新帮助文档带视图结构树的

    ### Spring4.X 最新帮助文档知识点总结 #### I. Spring框架概述 **1. 开始使用Spring** - **介绍:** 本章节介绍了如何快速上手Spring框架的基础配置与使用方法,适合初学者快速理解Spring的基本概念。 - **知识...

    Hessian与spring整合

    5. **异常处理与事务管理**:整合Hessian与Spring后,我们可以利用Spring的异常处理机制和事务管理功能。例如,当远程调用抛出异常时,Spring可以捕获并进行统一处理;同时,我们可以在方法上添加@Transactional注解...

    Java @Deprecated注解的作用及传递性

    `@Deprecated`的传递性是指当一个类或方法被标记为废弃后,其依赖关系是否也会受到警告。从描述来看,`@Deprecated`的传递性并不直接体现在子类上。也就是说,如果一个类被标记为`@Deprecated`,但它的子类没有被...

    deprecated:Python @deprecated装饰器以弃用旧的python类,函数或方法

    安装pip install Deprecated用法要使用此功能,请使用@deprecated装饰器装饰不推荐使用的函数: from deprecated import deprecated@ deprecateddef some_old_function ( x , y ): return x + y 您还可以修饰一个类...

    php解决Deprecated Automatically populating is deprecated and will be removed_will后面跟什么

    在PHP编程中,"Deprecated Automatically populating $_FILES is deprecated and will be removed" 是一个常见的错误提示,这通常出现在PHP更新版本后,对于旧代码的一种警告。这个错误意味着使用默认填充`$_FILES`...

    xorg-x11-deprecated-libs-6.8.2-37.FC4.49.2.1.x86_64.rpm

    xorg-x11-deprecated-libs-6.8.2-37.FC4.49.2.1.x86_64.rpm

Global site tag (gtag.js) - Google Analytics