zoukankan      html  css  js  c++  java
  • 【JPA】两种不同的实现jpa的配置方法


    两种不同的实现jpa的配置方法

    第一种:

    com.mchange.v2.c3p0.ComboPooledDataSource

    datasource.connection.driver_class=com.mysql.jdbc.Driver

    <!-- Where to find repositories -->
    <jpa:repositories base-package="org.springframework.data.jpa.example.repository.simple" />


    第二种:


    org.hibernate.ejb.HibernatePersistence

    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>


    <!-- 配置Spring Data JPA扫描目录-->
    <jpa:repositories base-package="com.suntak.dao" transaction-manager-ref="transactionManager" entity-manager-factory-ref="entityManagerFactory" query-lookup-strategy="create-if-not-found"/>


    1.EJB3.0和JAP之间的关系
    EJB3.0是一份规范,该规范由不同的部分组成:
    第一部分为session bean和message-driven bean定义了新的编程模型,以及部署规则等等;
    第二部分专门定义了持久化相关的规范:实体,对象/关系映射元数据,持久化管理接口和查询语言。第二部分就是我们所说的JPA(Java Persistence API),之所以取名叫JPA,很有可能是因为持久化的接口位于javax.persistence.
    所以,JPA是EJB的一部分,是EJB专门为持久化定义的规范。

    2.Hibernate和EJB3.0之间的关系
    首先你必须要了解的是,一个规范和一个产品是没有太多可比较性的,EJB3.0是java服务器端组件模型的一份规范,而hibernate是一个具体的产品,所以准确的提问应该是:hibernate实现了EJB3.0的规范吗?

    正如EJB3.0的规范划分成了不同的部分一样,EJB的实现者也有区分,有些产品完全实现了EJB3.0的规范,而有些产品只是实现了EJB3.0的一部分,比如仅实现了Java Persistence部分。
    Hibernate就是这样的产品,它实现了Java Persistence那部分规范,不仅如此,而且它还提供了一些Java Persistence规范里面没有的一些功能。所以也可以说,JPA规范所对应的功能是hibernate的子集。

    3.如何判断你使用的功能是JPA描述的还是hibernate自己特有的呢?
    一个简单的方式就是检查你引入的包,如果你只使用了javax.persistence.*,那么你使用的功能是通用的JPA提供的,如果你的代码里还引入了org.hibernate.*,那么你就使用了hibernate专有的功能。

    4.实现JPA的不仅仅只有Hibernate EntityManager,还有TopLink,OpenJPA.

    5.JPA已经作为一项对象持久化的标准,不但可以获得Java EE应用服务器的支持,还可以直接在Java SE中使用。开发者将无需在现有多种ORM框架中艰难地选择,按照Sun的预想,现有ORM框架头顶的光环将渐渐暗淡,不再具有以往的吸引力。

  • 相关阅读:
    Windows开发,关于通过写代码加载PDB的那些事
    从FreeBSD里面看到的网络协议列表,感觉可以保存一下
    听了几段《双投唐》
    ReactOS 无法显示中文的问题
    ReactOS 代码更新后的编译安装
    都什么年代了,怎么还那种德行
    假冒不伪劣
    ollvm 使用——“Cannot open /dev/random”错误的解决方法
    ollvm 编译
    C/C++ 吐槽第一期:你最讨厌的C/C++里面的数据类型是什么
  • 原文地址:https://www.cnblogs.com/viewcozy/p/4721878.html
Copyright © 2011-2022 走看看