JPA 解析
Posted 风来了
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA 解析相关的知识,希望对你有一定的参考价值。
1.查询表达式中的接口层次结构
2.CriteriaQuery
封装了传统查询的子句
3.Metamodel API 中的持久化类型的接口的层次结构
4. Metamodel API 中的持久化属性的接口的层次结构
5.元模型接口是持久化单元中的类型的容器
这个接口允许通过元模型元素的对应持久化实体类访问元模型元素。例如,要获得对 Person
持久化实体的持久化元数据的引用,可以编写:
EntityManagerFactory emf = ...; Metamodel metamodel = emf.getMetamodel(); EntityType< Person> pClass = metamodel.entity(Person.class); |
这是一个用类的名称通过 ClassLoader
获得 Class
的类比:
ClassLoader classloader = Thread.currentThread().getContextClassLoader(); Class< ?> clazz = classloader.loadClass("domain.Person"); |
JPA 的 Metamodel API 接口比 Java Reflection API 更加专业化。需要更细微的差别来表达关于持久化的丰富元信息。
例如,Java Reflection API 将所有 Java 类型表示为 java.lang.Class
。即没有通过独立的定义对概念进行区分,
比如类、抽象类和接口。当然,您可以询问 Class
它是一个接口还是一个抽象类,但这与通过两个独立的定义表示接口和抽象类的差别不同。
Metamodel API 将强类型引入到持久化实体中。例如,持久化实体在语义上区分为 MappedSuperClass
、Entity
和 Embeddable
。
在 JPA 2.0 之前,这种语义区分是通过持久化类定义中的对应类级别注释来表示的。JPA Metamodel 在 javax.persistence.metamodel
包中描述了 3 个独立的接口(MappedSuperclassType
、EntityType
和 EmbeddableType
),以更加鲜明的对比它们的语义特征。
类似地,可以通过接口(比如 SingularAttribute
、CollectionAttribute
和 MapAttribute
)在类型定义级别上区分持久化属性。
以上是关于JPA 解析的主要内容,如果未能解决你的问题,请参考以下文章
无法解析片段中的 ViewModelProvider 构造?
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段
Spring Java JPA 将 String 保存为 tinyblob,导致 json 解析错误