【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框架头顶的光环将渐渐暗淡,不再具有以往的吸引力。
【JPA】两种不同的实现jpa的配置方法的更多相关文章
- 两种动态加载JavaScript文件的方法
两种动态加载JavaScript文件的方法 第一种便是利用ajax方式,第二种是,动静创建一个script标签,配置其src属性,经过把script标签拔出到页面head来加载js,感乐趣的网友可以看 ...
- 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)
#把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...
- Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用
Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...
- 两种解决springboot 跨域问题的方法示例
两种解决springboot 跨域问题的方法示例,哪种方法看情况而定,自己选择.社会Boolean哥,人狠话不多,直接上代码. 第一种实现方式: 此种方式做全局配置,用起来更方便,但是无法 ...
- gitlab两种连接方式:ssh和http配置介绍
gitlab环境部署好后,创建project工程,在本地或远程下载gitlab代码,有两种方式:ssh和http (1)ssh方式:这是一种相对安全的方式 这要求将本地的公钥上传到gitlab中,如下 ...
- 两种PHP生成二维码的方法
PHP生成二维码,个人认为最常用的有两种,1.使用google的api生成,2.使用PHP QR Code生成,两种方法生成的二维码都是很清淅的,效果不错.下面来分别说明这两种方法如何实现. 一.PH ...
- Spring中IoC - 两种ApplicationContext加载Bean的配置
说明:Spring IoC其实就是在Service的实现中定义了一些以来的策略类,这些策略类不是通过 初始化.Setter.工厂方法来确定的.而是通过一个叫做上下文的(ApplicationConte ...
- spring boot @ResponseBody转换JSON 时 Date 类型处理方法,Jackson和FastJson两种方式,springboot 2.0.9配置fastjson不生效官方解决办法
spring boot @ResponseBody转换JSON 时 Date 类型处理方法 ,这里一共有两种不同解析方式(Jackson和FastJson两种方式,springboot我用的1.x的版 ...
- JAVA发送http GET/POST请求的两种方式+JAVA http 请求手动配置代理
java发送http get请求,有两种方式. 第一种用URLConnection: public static String get(String url) throws IOException { ...
随机推荐
- C#总结1
C#摘要 第一章: 数据类型: 在定义变量的时候,记下规则,开头不能是数字,变量名只能包括 字母 “_” 数字 整型类型 名称 CTS类型 说明 范围 sbyte System.SByte 8位有符号 ...
- HashMap(JDK1.8)源码剖析
在JDK1.6中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的Entity都存储在一个链表里.但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找 ...
- fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...
- LintCode 55 比较字符串
比较两个字符串A和B,确定A中是否包含B中所有的字符.字符串A和B中的字符都是 大写字母 注意事项 在 A 中出现的 B 字符串里的字符不需要连续或者有序. 样例 给出 A = "ABC ...
- 很常见的一直旋转的loading效果
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- WindowManage与Window的在Activity的一点小应用
super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN ...
- [转]Windows Shell 编程 第二章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987893】
第二章Shell的结构 “Shell 编程”的大伞之下有大量的API函数和COM接口.这个种类繁多的‘命令’集允许你用不同的方法对Windows Shell进行编程.函数和接口并不是两种提供相同功能 ...
- iOS推送通知流程
①注册推送通知使用方法:registerUserNotificationSettings, registerForRemoteNotifications ④APP发送deviceToken到第三方: ...
- 杂技之sharpdevelop调试aps.net
背景: 本人笔记本电脑不给力,vs打开实在太慢,因此考虑使用sharpdevelop,但sharpdevelop有点麻烦事,就是不支持asp.net的调试,为解决此问题,本人在此杂技一把了 方案一: ...
- C# 编码约定
参考自 MSDN https://msdn.microsoft.com/zh-cn/library/ff926074.aspx , 只摘要个人觉得有用部分 命名约定 在不包括 using 指令 ...