Persistence 与HibernatePersistence详解
javax.persistence.Persistence暴露出来了两个方法:
public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName)
public static EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map properties)
这两个方法会在classpath对应的路径下查找 META-INF/services/javax.persistence.spi.PersistenceProvider 这个资源,然后读取内容。
这个资源存放的是一个PersistenceProvider接口的一个实现类的完整类名。
然后实例通过反射实例化这个实现类,然后执行其 createEntityManagerFactory,然后返回该方法的执行结果。
org.hibernate.ejb.HibernatePersistence 中只有两个方法:
public EntityManagerFactory createEntityManagerFactory(String persistenceUnitName, Map overridenProperties)
public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo info, Map map)
这两个方法内部都会实例化一个Ejb3Configuration的实例,然后调用其configure方法。然后执行这个对象的buildEntityManagerFactory方法,并返回这个方法的执行结果。
这个configure方法内部会读取classpath对应目录下的META-INF下的persistence.xml文件,这里是硬编码的,所以路径和文件名都不能改变。
部分源码如下:
Persistence 与HibernatePersistence详解相关推荐
- [转] @JoinColumn 详解 (javax.persistence.JoinColumn)
原文链接:@JoinColumn详解 原文标的也是转载,但是没有注明原文链接,看起来乱乱的,所以整理一下转载过来,顺便细看一下 1. 一对一 现假设有Person表和Address表,是一对一的关系 ...
- CUDA之nvidia-smi命令详解---gpu
nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...
- Ehcache配置参数详解
ehcache配置参数详解 <?xml version="1.0" encoding="UTF-8"?><ehcache><dis ...
- Java消息服务JMS详解
2019独角兽企业重金招聘Python工程师标准>>> JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业 ...
- Hibernate配置详解
一.简单介绍 Hibernate是一种对JDBC做了轻量级封装的对象---关系映射工具,所谓轻量级封装,是指Hibernate并没有完全封装JDBC,Java应用即可以通过Hibernate ...
- redis php 持久化,详解Redis RDB持久化、AOF持久化,
详解Redis RDB持久化.AOF持久化, 1.持久化 1.1 持久化简介 持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永 ...
- Spring事务管理(详解+实例)
写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: ...
- SpringBoot注解最全详解(整合超详细版本)
今日推荐强制双休!腾讯调整加班机制,21 点前必须离开工位 使用雪花id或uuid作为Mysql主键,被老板怼了一顿! 盘点 12 个 GitHub 上的高仿项目 CTO 说了,用错 @Autowir ...
- linux 之RAID详解
主要内容: 一. RAID详解 二. mdadm工具介绍 三. 创建一个RAID的基本过程 四. 磁盘阵列的管理 五. RAID优化 RAID详解: 描述:RAID:(Redundant A ...
最新文章
- mysql数据更新回退_Mysql的几个灵魂拷问(一)
- 2021年3月9日 北京快手Java开发–用户增长方向 实习面经(一面)
- [密码学] 复杂性理论基础
- c语言 如何创建adt_C语言探索之旅 | 第二部分第六课:创建你自己的变量类型
- ALV中动态内表+行转化为列
- 1005 矩阵快速幂
- Java语法基础50题训练(上)
- 线性结构常规操作(四)
- oracle r11,Oracle XML Publisher在Oracle R11i中的实际运用
- npm突然找不到D:\nodejs\node_modules\npm\bin\npm-cli.js的解决方法
- 字符串的HashCode可能相同
- c++ findpeaks函数_C++实现MATLAB一维数组函数findpeaks()函数求一维离散值极值(波峰波谷)...
- 已解决-改变macOS和Windows双系统的默认启动顺序
- 比犀利哥更经典的话语
- HBase源码阅读(一) balancer
- Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) | 解压安装
- java jcmd,JVM工具_jcmd
- CLion 的 Debug 模式是怎么回事
- 支付宝公众平台 接口
- 20221026使用搜狗翻译在线翻译英文文档的评测