JPA 解析

看图想想相关的架构

1.查询表达式中的接口层次结构

2.CriteriaQuery 封装了传统查询的子句

3.

4. Metamodel API 中的持久化属性的接口的层次结构

5.元模型接口是持久化单元中的类型的容器

JPA 的 Metamodel API 接口比 Java Reflection API 更加专业化。需要更细微的差别来表达关于持久化的丰富元信息。

例如,Java Reflection API 将所有 Java 类型表示为 java.lang.Class。即没有通过独立的定义对概念进行区分,

比如类、抽象类和接口。当然,您可以询问 Class它是一个接口还是一个抽象类,但这与通过两个独立的定义表示接口和抽象类的差别不同。

Metamodel API 将强类型引入到持久化实体中。例如,持久化实体在语义上区分为 MappedSuperClassEntity和 Embeddable

在 JPA 2.0 之前,这种语义区分是通过持久化类定义中的对应类级别注释来表示的。JPA Metamodel 在 javax.persistence.metamodel

包中描述了 3 个独立的接口(MappedSuperclassTypeEntityType和 EmbeddableType),以更加鲜明的对比它们的语义特征。

类似地,可以通过接口(比如 SingularAttributeCollectionAttribute和 MapAttribute)在类型定义级别上区分持久化属性。

时间: 2024-11-06 11:20:43

JPA 解析的相关文章

Spring Data Jpa系列教程--------实体解析和关联关系

Spring Data Jpa是基于HIbernate开发的,所以建立实体建的实体和映射关系需要好好好的去了解一下,本文有以下内容,实体管理器介绍,实体与数据库表的映射介绍,关联关系(一对多,多对多)介绍,SpringDataJpa应用分析 ------实体管理器   实体管理器EntityManager是实体与数据库的桥梁(和事务一起发挥作用),相当于Hibenrtae中的session,Mybatis中的sqlSession.使用方法放个小例子吧 @PersistenceContext pr

Jpa规范中persistence.xml 配置文件解析

数据库已经配好的前提下 persistence.xml配置如下 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q

spring jpa 读写分离

本文主要解决基于spring data jpa读写分离. 思想:在dataSource做路由,根据事务判断使用主从数据源. 背景:spring+spring data jpa(hibernate jpa) 首先是jpa配置,时间有限在原基础上该的,既有java配置也有xml配置,见谅. 先声明EntityManager Xml代码   <!-- Jpa Entity Manager 配置 --> <bean id="entityManagerFactory" clas

Spring Data JPA 1.10.1 详解二之快速Demo

一.maven配置文件加入依赖 Spring Data JPA 依赖,最新稳定的版本为1.10.1.RELEASE,这里需要说明下的是,其依然依赖hibernate JPA相关JAR,hibernate-core之类的是不需要的.hibernate是JPA规范的一种实现,所以需要加入其依赖.ehcache是hibernate二级缓存的配置,不是必须的. <dependency>         <groupId>org.springframework.data</groupI

Spring Data JPA 入门Demo

什么是JPA呢? 其实JPA可以说是一种规范,是java5.0之后提出来的用于持久化的一套规范:它不是任何一种ORM框架,在我看来,是现有ORM框架在这个规范下去实现持久层. 它的出现是为了简化现有的持久化框架,例如hibernate.Toplink等,让我们的程序再不用去使用这些现有的产品所提供的API,也就是说,我们只需遵循这套规范,用什么框架实现数据库操作就不会有太高的耦合度,JPA可以为我们降低耦合,并且简化我们的ORM操作. JPA主要提供3方面的技术: 1.ORM映射元数据,通常对应

深入浅出学Spring Data JPA

第一章:Spring Data JPA入门   Spring Data是什么 Spring Data是一个用于简化数据库访问,并支持云服务的开源框架.其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务. Spring Data 包含多个子项目: Commons - 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化 JPA - 简化创建 JPA 数据访问层和跨存储的持久层功能 Hadoop - 基于 Spring 的 Hadoop 作业配置和一个 P

spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置

先从persistence.xml开始: <?xml version=”1.0″ encoding=”UTF-8″?><persistence version=”2.1″ xmlns=”http://java.sun.com/xml/ns/persistence” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/persistence

Mybatis JPA

前段时间了解到Spring JPA,感觉挺好用,但其依赖于Hibernate,本人看到Hibernate就头大(不是说Hibernate不好哈,而是进阶太难),于是做了一个迷你版的Mybatis JPA. 一.简介 1.1粗糙点 1.)Entity不支持实体类的嵌套; 2.)目前不支持批量操作,不支持分页查询(这个后续会有的); 3.)仅支持单表,单字段作为where条件(我目前是这样理解的,复杂的SQL还是手工构建比较好,更灵活且便于维护,一般的SQL可以使用Mybatis注解,复杂的SQL最

Spring data jpa中Query和@Query分别返回map结果集

引用: http://blog.csdn.net/yingxiake/article/details/51016234 http://blog.csdn.net/yingxiake/article/details/51016234 http://www.cnblogs.com/zj0208/p/6008627.html Query的使用: 在JPA 2.0 中我们可以使用entityManager.createNativeQuery()来执行原生的SQL语句. 但当我们查询结果没有对应实体类时,